irpas技术客

Mysql两表 join 查询方式_LoveDR_1995

大大的周 7130

一、SQL基本语法格式 SELECT DISTINCT < select_list > FROM < left_table > < join_type > JOIN < right_table > ON <join_condition> WHERE < where_condition > GROUP BY < group_by_list > HAVING < having_condition > ORDER BY < order_by_condition > LIMIT < limit_number > 二、3种join方式 1. left join(左连接)

A left join B 得到A表的所有字段,如果没有匹配到连接条件则用null填充

select A.*,B.* from A left join B on A.id = B.id;

2. right join(右连接)

A right join B 得到B表所有的字段

select A.*,B.* from A right join B on A.id=B.id;

3. inner join(内连接)

A inner join B得到(A和B的交集)

select A.*,B.* from A inner join B on A.id=B.id;

4. 在理解上面的三种join下,查询(A - ?A∩B) select A.*,B.* from A left join B on A.id=B.id where B.id is null;

?5. 查询 ( B - A∩B ) select A.*,B.* from A right join B on A.id=B.id where A.id is null;

?6. 查询(A∪B - A∩B)

利用union去重将上面的第四、第五种两条sql中间用union连接即可完成;即先完成一小部分的,然后将两个拼起来的思想。

select A.*,B.* from A left join B on A.id=B.id where B.id is null union select A.*,B.* from A right join B on A.id=B.id where A.id is null;

?7. 查询?AUB

MySQL中求并集可以使用union关键字进行处理(自动去重)

select A.*,B.* from A left join B on A.id=B.id UNION select A.*,B.* from A right join B on A.id=B.id;

??如果有帮助到,点赞关注哦,谢谢朋友


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Mysql两表 #JOIN #查询方式 #MySQL #两表join #查询