SQL LEFT JOINとRIGHT JOIN
2010/10/11
例)[表:品名]の[列:NO]と[表:売上]の[列:MONO]を連結。
NO | NAME | PRICE |
---|---|---|
01 | nam1 | 10000 |
02 | nam2 | 15000 |
03 | nam3 | 20000 |
04 | nam4 | 25000 |
NO | DATE | MONO |
---|---|---|
01 | 0911 | 01 |
02 | 0912 | 03 |
03 | 0913 | 01 |
04 | 0914 | 08 |
[表:品名]の[列:NO]と[表:売上]の[列:MONO]を連結
→完全一致(INNER JOIN)させる。
SELECT *
FROM [表:品名] INNER JOIN [表:売上] ON [表:品名].[列:NO] = [表:売上]の[列:MONO]
FROM [表:品名] INNER JOIN [表:売上] ON [表:品名].[列:NO] = [表:売上]の[列:MONO]
↓↓↓
NO | NAME | PRICE | NO | DATE | MONO |
---|---|---|---|---|---|
01 | nam1 | 10000 | 01 | 0911 | 01 |
01 | nam1 | 0000 | 03 | 0913 | 01 |
03 | nam3 | 20000 | 02 | 0912 | 03 |
※「[表:品名]の[列:NO]」=「[表:売上]の[列:MONO]」になるものをすべて抽出
[表:品名]の[列:NO]をすべて表示させて、[表:売上]の[列:MONO]を連結
→左側の表を優先(LEFT JOIN)させる
SELECT *
FROM [表:品名] LEFT JOIN [表:売上] ON [表:品名].[列:NO] = [表:売上]の[列:MONO]
FROM [表:品名] LEFT JOIN [表:売上] ON [表:品名].[列:NO] = [表:売上]の[列:MONO]
↓↓↓
NO | NAME | PRICE | NO | DATE | MONO |
---|---|---|---|---|---|
01 | nam1 | 10000 | 01 | 0911 | 01 |
01 | nam1 | 10000 | 03 | 0913 | 01 |
02 | nam2 | 15000 | |||
03 | nam3 | 20000 | 02 | 0912 | 03 |
04 | nam4 | 25000 |
※(RIGHT JOIN)は(LEFT JOIN)の逆
LEFT JOINとかのまとめ。
- A INNER JOIN B
- AとBが完全一致するものだけ表示
- A LEFT JOIN B
- Aをすべて表示して、Aと一致するBも表示
- A RIGHT JOIN B
- Bをすべて表示して、Bと一致するAも表示