MySQL連結クエリー

3953 ワード

SQLでは、結合は主に6種類に分けられます.
1.内部連結
2つのテーブルの共通のデータを表示します.つまり、2つのテーブルの交差を表示します.
SELECT <list> FROM A INNER JOIN B ON A.key = B.key;

2.左外連結
2つのテーブルのうち、左のテーブルにのみ存在し、右のテーブルには存在しないデータをフィルタします.
SELECT <list> FROM A LEFT JOIN B ON A.key = B.key WHERE B.key IS NULL;

後ろのwhere句を付けないと、2つのテーブルの共通部分も表示されます.
3.右外部連結
2つのテーブルのうち、右のテーブルにのみ存在し、左のテーブルには存在しないデータをフィルタします.
SELECT <list> FROM A RIGHT JOIN B ON A.key = B.key WHERE A.key IS NULL;

後ろのwhere句を付けないと、2つのテーブルの共通部分も表示されます.
4.全連結
2つのテーブルのすべてのレコードを表示します.つまり、2つのテーブルのセットを取得します.ただし、MySQLではフル結合操作はサポートされていません.左外部結合と右外部結合を人為的に結合する必要があります.
SELECT <list> FROM A LEFT JOIN B ON A.key = B.key
UNION ALL
SELECT <list> FROM A RIGHT JOIN B ON A.key = B.key;   union all         ,         union

5.クロスジョイント
デカルト積結合とも呼ばれ、左のテーブルに右のテーブルを乗じたすべてのエントリを返します.
SELECT <list> FROM A CROSS JOIN B;

6.自己連結
同じテーブルを結合します.
SELECT p1.id, p1.name FROM products AS p1, products AS p2 WHERE p1.vend_id = p2.vend_id AND p2.id = 10;

 
転載先:https://www.cnblogs.com/00986014w/p/8465083.html