mysql多种join_MySQL的几种Join
/* 左表t1*/
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (id INT NOT NULL,NAME VARCHAR(20));
INSERT INTO t1 VALUES (1,‘t1a‘);
INSERT INTO t1 VALUES (2,‘t1b‘);
INSERT INTO t1 VALUES (3,‘t1c‘);
INSERT INTO t1 VALUES (4,‘t1d‘);
INSERT INTO t1 VALUES (5,‘t1f‘);
/* 右表 t2*/
DROP TABLE IF EXISTS t1;
CREATE TABLE t2 (id INT NOT NULL,NAME VARCHAR(20));
INSERT INTO t2 VALUES (2,‘t2b‘);
INSERT INTO t2 VALUES (3,‘t2c‘);
INSERT INTO t2 VALUES (4,‘t2d‘);
INSERT INTO t2 VALUES (5,‘t2f‘);
INSERT INTO t2 VALUES (6,‘t2a‘);
#兩表關聯,把左表的列和右表的列通過笛卡爾積的形式表達出來。
SELECT * FROM t1 JOIN t2
#兩表關聯,左表全部保留,右表關聯不上用null表示。
SELECT * FROM t1 LEFT JOIN t2 ON t1.id =t2.id
#右表全部保留,左表關聯不上的用null表示。
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id =t2.`id`
#兩表關聯,保留兩表中交集的記錄。
SELECT * FROM t1 INNER JOIN t2 ON t1.id=t2.`id`
#兩表關聯,查詢左表獨有的數據。
SELECT * FROM t1 LEFT JOIN t2 ON t1.id =t2.`id` WHERE t2.id IS NULL
#兩表關聯,查詢右表獨有的數據。
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id =t2.id WHERE t1.id IS NULL
#兩表關聯,查詢它們的所有記錄
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id =t2.`id`
UNION
SELECT * FROM t1 LEFT JOIN t2 ON t1.id =t2.id
#兩表關聯,取并集然后去交集。SELECT * FROM t1 LEFT JOIN t2 ON t1.id =t2.`id` WHERE t2.id IS NULLUNIONSELECT * FROM t1 RIGHT JOIN t2 ON t1.id =t2.id WHERE t1.id IS NULL
總結
以上是生活随笔為你收集整理的mysql多种join_MySQL的几种Join的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小小算法题(CCF)
- 下一篇: Python基础(十)--文件相关