- 交集
要获取两个表的交集,你可以使用INNER JOIN或者JOIN:
bash
SELECT *
FROM table1
JOIN table2 ON table1.column_name = table2.column_name;
也可以使用 INTERSECT 关键字
bash
SELECT * FROM table1
INTERSECT
SELECT * FROM table2;
- 并集
要获取两个表的并集,你可以使用UNION:
bash
SELECT * FROM table1
UNION
SELECT * FROM table2;
- 差集
要获取两个表的差集,你可以使用LEFT JOIN或RIGHT JOIN,然后过滤掉匹配的行:
bash
-- 左表中有的而右表中没有的
SELECT table1.*
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name
WHERE table2.column_name IS NULL;
-- 右表中有的而左表中没有的
SELECT table2.*
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name
WHERE table1.column_name IS NULL;
也可以使用 except关键字
bash
SELECT * FROM table1
except
SELECT * FROM table2;