0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

内部結合(INNER JOIN)と外部結合(OUTER JOIN)

Posted at

今回は内部結合と外部結合について勉強したのでまとめてみました
以下は記述なんですけど、間違っている場合は教えてください。
まず、2つテーブルには共通のカラムが必要になります。

    goodslist        batch_number

内部結合(INNER JOIN)

共通のカラムを軸に情報を表示します。

SQL文:
SELECT * FROM テーブル名1 INNER JOIN テーブル名2 ON テーブル名1.共通のカラム名 = テーブル名2. 共通のカラム名;

※ INNERはなくでも大丈夫

SQL文:

qiita.rb
SELECT * FROM テーブル名1 INNER JOIN テーブル名2 ON テーブル名1.共通のカラム名 = テーブル名2. 共通のカラム名;

そしてこの実例には

qiita.rb

 SELECT * FROM goodslist INNER JOIN batch_number ON goodslist.id = batch_number.goods_id;

となります。

実行すると下図となります。
截圖 2025-02-21 18.51.30.png

更に絞りたい時の場合は「*」を「テーブル名.カラム名」一つずつ(示したいカラム)に替わります。

qiita.rb
SELECT
    batch_number.id ,
    goodslist.id ,
    goodslist.name ,
    batch_number.batch_number ,
    batch_number.quantity ,
    batch_number.enterdate ,
    batch_number.order_number 
FROM goodslist 
INNER JOIN batch_number 
    ON goodslist.id = batch_number.goods_id

実行すると下図となります。
截圖 2025-02-21 19.24.06.png

外部結合(OUTER JOIN)

テーブル側を軸に情報を表示します。

「LEFT JOIN」と「RIGHT JOIN」

LEFTは左の意味である、つまりLEFT JOINを使うとFROMで指定した側のテーブルを軸に情報を表示します。
右の意味であるRIGHT JOINを使うとJOINで指定した側のテーブルを軸に情報を表示します。

SQL文:

qiita.rb
SELECT * FROM テーブル名1 LIFT JOIN テーブル名2 ON テーブル名1.共通のカラム名 = テーブル名2. 共通のカラム名;

SELECT * FROM テーブル名1 RIGHT JOIN テーブル名2 ON テーブル名1.共通のカラム名 = テーブル名2. 共通のカラム名;

実行すると下図となります。

qiita.rb
SELECT * FROM goodslist LEFT JOIN batch_number ON goodslist.id = batch_number.goods_id;

截圖 2025-02-21 20.19.25.png

qiita.rb
SELECT * FROM goodslist RIGHT JOIN batch_number ON goodslist.id = batch_number.goods_id;

截圖 2025-02-21 18.51.30.png 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?