20180925-MySQL-Joins

  • 四種join
  1. Cross join
  2. Inner join
  3. Left join
  4. Right join
  • 前期準(zhǔn)備工作
CREATE TABLE t1 (
    id INT PRIMARY KEY,
    pattern VARCHAR(50) NOT NULL
);
CREATE TABLE t2(
    id VARCHAR(50) PRIMARY KEY,
    pattern VARCHAR(50) NOT NULL
);
INSERT INTO t1(id, pattern) 
VALUES(1, 'Divot'),(2, 'Brick'),(3, 'Grid');
INSERT INTO t2(id, pattern)
VALUES('A', 'Brick'),('B', 'Grid'),('C', 'Diamond');
  • MySQL CROSS JOIN多個(gè)表的笛卡爾積
SELECT t1.id, t2.id
FROM t1
CROSS JOIN t2;

結(jié)果如下

id id
1 A
2 A
3 A
1 B
2 B
3 B
1 C
2 C
3 C
  • MySQL INNER JOIN前提是有匹配的列值,非空值
    join-predicatet1.pattern = t2.pattern
SELECT t1.id, t2.id
FROM t1 INNER JOIN t2
ON t1.pattern = t2.pattern;

結(jié)果如下

id id
2 A
3 B
  • MySQL LEFT JOIN列出所有的左邊的列以及右邊符合要求的列,右邊的值可以為空
SELECT t1.id, t2.id
FROM t1 LEFT JOIN t2 ON t1.pattern = t2.pattern;

結(jié)果如下

id id
2 A
3 B
1 NULL
  • MySQL RIGHT JOIN,類似情況,右邊的列不能為空,需要全部列出,左邊的列可以為NULL
SELECT t1.id, t2.id
FROM t1 RIGHT JOIN t2 ON t1.pattern = t2.pattern;

結(jié)果如下:

id id
2 A
3 B
NULL C
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容