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?

More than 1 year has passed since last update.

SQL テーブルの紐づけ

Posted at

##テーブルの結合
JOINは複数のテーブルを1つに結合したいときに使います。ONで条件を指定して、テーブル名1にテーブル名2を結合します。結合したテーブルは1つのテーブルとしてデータを取得することができ、「ON テーブル名.カラム名 = テーブル名.カラム名」で指定します。

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

WHERE・GROUP BY、関数などを含んだ実行順序を確認しましょう。実行順列に関しては以下の記事を参照
https://qiita.com/yurina0402/items/78ae1f536b6755d6221a
SQLは、取得するテーブルを形成してから検索を行うので、FROM・JOINが先に行われることを覚えておきましょう。

SELECT 関数(カラム),カラム
FROM テーブル名1
JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム
WHERE カラム = "文字"
GROUP BY カラム;

※JOINを使った結合は、FROMで指定したテーブルを基準に実行されます。ただし、下の図のように外部キーがNULLのレコードは、実行結果に表示されません。

####LEFT JOIN
LEFT JOINを使うことで、FROMで指定したテーブルのレコードを全て取得します。
※外部キーがNULLのレコードもNULLのまま実行結果に表示されます。

SELECT *
FROM テーブル名1
LEFT JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム;

####3つのテーブル結合
JOINは1つのクエリで、複数回使用できます。JOINを複数回使用しても、FROMは1度だけ書けば大丈夫なので注意しましょう。

SELECT *
FROM テーブル名1
JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム
LEFT JOIN テーブル名3
ON テーブル名1.カラム=テーブル名3.カラム;
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?