内部結合(INNER JOIN)

メモ:  Category:mysql

結合する列の値が一致する行を表示することができます。

内部結合

SELECT 列名,[列名,・・・]
FROM 表1
INNER JOIN 表2
ON 表1.列 = 表2.列;

SQL92 から FROM 句に結合および結合の条件を指定できるようになりました。 結合条件と抽出条件を分離するという意味では、 INNER JOIN の使用が好ましいかもしれません。 私は、昔からの癖で FROM 句に複数テーブルを指定し WHERE 句で結合してしまいますが・・・ MySQL も同様に複数の内部結合の書式があります。

内部結合の例

次のようなテーブルが定義されているとします。

テーブルイメージ

このテーブルで結合条件にMedia_IDを指定して内部結合します。 SQL文と結果は、次のようになります。

SELECT Media.Media_ID, Media.Title, Impression.Impression_ID, Impression.Immpression
FROM Media
INNER JOIN Impression
ON Media.Media_ID = Impression.Media_ID;
結合結果

内部結合のほかの書式

内部結合を行う書式は、他にもあります。

SELECT Media.Media_ID, Media.Title, Impression.Impression_ID, Impression.Immpression
FROM Media,Impression 
WHERE Media.Media_ID = Impression.Media_ID;
SELECT Media.Media_ID, Media.Title, Impression.Impression_ID, Impression.Immpression
FROM Media
NATURAL JOIN Impression;
SELECT Media.Media_ID, Media.Title, Impression.Impression_ID, Impression.Immpression
FROM Media
JOIN Impression
USING(Media_ID);

bluenote by BBB