五、MySQL数据库之连接查询

  本节介绍数据库的连接查询,连接方式主要有: LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN / FULL PUTER JOIN。彼此的组合有7大类,展示图如下:

原有表:

增加一张表:asett,表数据如下

1、left join用法

        eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c left join asett as a on c.cus_id = a.ast_id;                     --left join关键字从左表(customer)返回所有的行,即使右表(asett)中没有匹配。如果右表中没有匹配,则结果为 NULL。

         eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c left join asett as a on c.cus_id = a.ast_id where a.ast_id = null;   --left join关键字从左表(customer)返回所有的行,过滤右表(asett)中ast_id为 NULL的情况。

2、right join用法

         eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c right join asett as a on c.cus_id = a.ast_id;                 --right join关键字从右表(asett)返回所有的行,即使左表(customer)中没有匹配。如果右表中没有匹配,则结果为 NULL。

         eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c right join asett as a on c.cus_id = a.ast_id where c.cus_id= null; --right join关键字从右表(asett)返回所有的行,过滤左表(customer)中cus_id为 NULL的情况。

3、inner join用法

         eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c inner join asett as a on c.cus_id = a.ast_id;                    --inner  join关键字在表中存在至少一个匹配时返回行。如果表customer中的行在表asett中没有匹配,则不会返回行。

4、full outer join用法

        eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c full outer  join asett as a on c.cus_id = a.ast_id;           --full outer  join关键字只要左表(customer)和右表(asett)其中一个表中存在匹配,则返回行.。

         eg:select c.cut_id, c._cusname, a.ast_fee, a.ast_phone from customer as c full outer  join asett as a on c.cus_id = a.ast_id where c.cus_id= null or a.ast_id = null;   --full outer  join关键字只要左表(customer)和右表(asett)其中一个表中存在匹配,则返回行,同时过滤两个表cus_id或ast_id为空的情况.。

5、连接查询总结

表A left join 表B on 条件                --取 表A 全部,表B 没有对应的值为 null。

表A right join 表B on 条件              --取 表B 全部,表A 没有对应的值为 null。

表A full outer join表B on 条件        --取两个表并集,彼此没有对应的值为 null。

表A inner join 表B on 条件             --取两个表A/B的交集。

   以上Sql语句只是简单地展示具体的使用和基本语法,大家在练习使用连接查询left join,right join,inner join,outer join 时,多关注查询出的数据情况以及彼此之间的差异,灵活和熟练掌握查询使用方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容