id name id name
-- ---- -- ----
1 Pirate 1 Rutabaga
2 Monkey 2 Pirate
3 Ninja 3 Darth Vader
4 Spaghetti 4 Ninja
1、取交集
Select * FROM tableA
JOIN tableB
ON tableA.name = tableB.name
2、取左全集,没有匹配的用 null 代替
SELECT * FROM tableA
leftJOIN tableB
on tableA.name=tableB.name
3、取右全集,没有匹配的用 null 代替
Select * FROM tableA
RIGHTJOIN tableB
ON tableA.name = tableB.name
4、取并集,由于 mysql 没有 full join 只有使用 UNION
SELECT * FROM tableA
RIGHTJOIN tableB
on tableA.name=tableB.name
UNIONSELECT * FROM tableA
LEFTJOIN tableB
on tableA.name=tableB.name
5、取不交叉的数据
SELECT * FROM tableA
RIGHTJOIN tableB
ON tableA.name=tableB.name
WHERE tableA.id ISNULLUNIONSELECT * FROM tableA
LEFTJOIN tableB
ON tableA.name=tableB.name
WHERE tableB.id ISNULL