(INNER)JOIN:両方のテーブルで一致する値を持つレコードを返します。
LEFT(OUTER)JOIN:左側のテーブルからすべてのレコードを返し、右側のテーブルから一致したレコードを返します。
RIGHT(OUTER)JOIN:右側のテーブルからすべてのレコードを返し、左側のテーブルから一致したレコードを返します。
FULL(OUTER)JOIN:左または右のテーブルに一致がある場合、すべてのレコードを返します
たとえば、次のレコードを持つ2つのテーブルがあるとします。
テーブルA
id firstname lastname
___________________________
1 Ram Thapa
2 sam Koirala
3 abc xyz
6 sruthy abc
テーブルB
id2 place
_____________
1 Nepal
2 USA
3 Lumbini
5 Kathmandu
内部結合
注:2つのテーブルの共通部分を示します。
構文
SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
それをサンプルテーブルに適用します。
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA INNER JOIN TableB ON TableA.id = TableB.id2;
結果は次のようになります。
firstName lastName Place
_____________________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
左結合
注:TableAで選択されているすべての行に加えて、TableBで選択されている一般的な行が表示されます。
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
サンプルテーブルに適用します
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA LEFT JOIN TableB ON TableA.id = TableB.id2;
結果は次のようになります。
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
右結合
注:TableBで選択されているすべての行に加えて、TableAで選択されている一般的な行が表示されます。
構文:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
あなたのサモレのテーブルにそれを適用してください:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA RIGHT JOIN TableB ON TableA.id = TableB.id2;
結果はbwになります:
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
Null Null Kathmandu
完全参加
注:ユニオン操作と同じで、両方のテーブルから選択されたすべての値を返します。
構文:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
サンプルに適用してください:
SELECT TableA.firstName,TableA.lastName,TableB.Place FROM TableA FULL JOIN TableB ON TableA.id = TableB.id2;
結果は次のようになります。
firstName lastName Place
______________________________
Ram Thapa Nepal
sam Koirala USA
abc xyz Lumbini
sruthy abc Null
Null Null Kathmandu
いくつかの事実
INNER参加の場合、順序は関係ありません
(LEFT、RIGHT、またはFULL)OUTER結合の場合、順序は重要です
w3schoolsで詳細を見る
RIGHT JOIN
な結果を単に達成できるのであれば、なぜ必要なのLEFT JOIN
でしょうか。:P