left join on左连接的使用
2016-08-24 10:12
495 查看
一、概念:
–把left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成你的结果。
–进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面。
二、实例
1、表a结构和数据
2、表b结构和数据
3、SQL语句调用
4、总结:
–sql语句1可见,left join 中左表的全部记录将全部被查询显示,on 后面的条件对它不起作用,除非再后面再加上where来进行筛选,这就是sql语句2了。
–由sql语句3可见,on后面的条件中,右表的限制条件将会起作用。
–把left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成你的结果。
–进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面。
二、实例
1、表a结构和数据
table a(id, type): id type ---------------------------------- 1 1 2 1 3 2
2、表b结构和数据
table b(id, class): id class --------------------------------- 1 1 2 2
3、SQL语句调用
--sql语句1: select a.*, b.* from a left join b on a.id = b.id and a.type = 1; 执行结果为: a.id a.type b.id b.class ---------------------------------------- 1 1 1 1 2 1 2 2 3 2
--sql语句2: select a.*, b.* from a left join b on a.id = b.id where a.type = 1; 执行结果为: a.id a.type b.id b.class ---------------------------------------- 1 1 1 1 2 1 2 2
--sql语句3: select a.*, b.* from a left join b on a.id = b.id and b.class = 1; 执行结果为: a.id a.type b.id b.class ---------------------------------------- 1 1 1 1 2 1 3 2
4、总结:
–sql语句1可见,left join 中左表的全部记录将全部被查询显示,on 后面的条件对它不起作用,除非再后面再加上where来进行筛选,这就是sql语句2了。
–由sql语句3可见,on后面的条件中,右表的限制条件将会起作用。
相关文章推荐
- hibernate HQL left join on 使用及多表连接取不同表(封装类)字段数据显示解决办法
- left join on左连接的使用
- sql语法:inner join on, left join on, right join on详细使用方法
- sql语法中的inner join on, left join on和 right join on的区别和详细使用方法(转载)
- 内连接、外连接(左连接、右连接、全外连接)inner join on, left join on, right join on
- inner join on, left join on, right join on详细使用方法
- sql语法:inner join on, left join on, right join on详细使用方法
- sql语法:inner join on, left join on, right join on详细使用方法
- 解析mysql left( right ) join使用on与where筛选的差异
- sql 左连接和右连接的使用技巧(left join and right join)
- 【转】sql语法:inner join on, left join on, right join on详细使用方法
- sql语法:inner join on, left join on, right join on详细使用方法
- 左连接 A left join B on A.a = B.a and/where的区别
- sql语法:inner join on, left join on, right join on详细使用方法
- 解析mysql left( right ) join使用on与where筛选的差异
- inner join on, left join on, right join on详细使用方法
- SQL语法: inner join on, left join on,right join on详细使用方法
- 连接查询 left join on, union
- sql 左连接和右连接的使用技巧(left join and right join)
- 关于数据库中使用 left join on ...and ...和 left join on ....where ...区别,和使用group by 要注意的情况