美文网首页
MySql Join 实例

MySql Join 实例

作者: Reiser实验室 | 来源:发表于2019-06-25 16:24 被阅读0次
All Join

这篇文章完全来自于CoolSell.cn,我只是在他的基础上做了些 MySql 的语法翻译。把模模糊糊的 join 做一个总结

0、数据准备 tableA tableB

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
left JOIN tableB
on tableA.name=tableB.name
图示 查询结果

3、取右全集,没有匹配的用 null 代替

Select * FROM tableA
RIGHT JOIN tableB
ON tableA.name = tableB.name
查询结果

4、取并集,由于 mysql 没有 full join 只有使用 UNION

SELECT * FROM tableA
RIGHT JOIN tableB
on tableA.name=tableB.name
UNION
SELECT * FROM tableA
LEFT JOIN tableB
on tableA.name=tableB.name
图示 查询结果

5、取不交叉的数据

SELECT * FROM tableA
RIGHT JOIN tableB
ON tableA.name=tableB.name
WHERE tableA.id IS NULL
UNION
SELECT * FROM tableA
LEFT JOIN tableB
ON tableA.name=tableB.name
WHERE tableB.id IS NULL
图示 查询结果

6、笛卡尔积,笛卡尔乘积会产生 4 x 4 = 16 条

SELECT * FROM tableA JOIN tableB

相关文章

网友评论

      本文标题:MySql Join 实例

      本文链接:https://www.haomeiwen.com/subject/tgcxcctx.html