对 left join 多个表的join 和 on 的分析Demo

原创 2017年10月13日 16:09:42
1demo建表
--人事表
CREATE TABLEMan(
Man_IdTINYINT,
Man_NameVARCHAR(10),
Zw_IdTINYINT);
--职务表
CREATE TABLEZw(
Zw_IdTINYINT,
Zw_NameVARCHAR(10));
--工资表
CREATE TABLEGZ(
Man_IdTINYINT,
MoneyVARCHAR(10),
Sex_IdTINYINT);
--性别表
CREATE TABLExb(
Sex_IdTINYINT,
Sex_NameVARCHAR(10));
插入的数据





2_讨论多个left join之间的关系
1_SELECT*FROMgz g LEFT JOIN xb x ONg.Sex_Id=x.Sex_Id;

2_SELECT*FROMgz g LEFT JOIN xb x ONg.Sex_Id=x.Sex_Id LEFT JOINzw zON x.Sex_Id=z.Zw_Id;

3_SELECT*FROMgz g LEFT JOIN xb x ONg.Sex_Id=x.Sex_Id LEFT JOINzw zON g.Sex_Id=z.Zw_Id;


总结
多个left join 分析ABC 三表
当 A和B left join时 on的条件是表达A和B之间的关系的 ,紧接着在leftjoin C那么其实主要看on后面的条件.
ON 后是A和C之间的关系关联 那么 有可能在第一步A和B的交集不属于第二个A和C之间的交集所以会造成 图3中中间部分的null的产生, A + (A∩B)∩(A∩C)
同理图二最后出现的两个null 是因为 A和C 的交集 交上 B和C的交集只有一个结果 :A + (A∩B)∩(B∩C)
两种情况是不同的 ,所以在企业开发的时候需要注意!!

Mysql Join语法解析与性能分析

最后感谢大家阅读,希望大家留言讨论!

版权声明:本文为博主原创文章,未经博主允许不得转载。

left join on 多个表的时候的表示方法

select   *   from table1   left   join   table2   on   条件1    left   join   table3   on   条件2    lef...

discuz代码分析之左连接 t1 left join t2 on t1.id=t2.uid where...

mysql 表连接(left/right/full join)时on 和 where的结果差异

有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。    可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来...

hibernate HQL left join on 使用及多表连接取不同表(封装类)字段数据显示解决办法

在使用hibernate时,运用hql语句查询数据,使用join on多表连接查询,不能在hql中使用on,需在hibernate配置文件中配置好。 原本hql语句如下: String sql="s...

【MySQL】mysql left join 多个表

参考:mysql left join 多个表 SQL:select * from t_a a left join t_b b on a.bid = b.bid left join t_c c...

left join on 和where条件的放置

select * from td   left join ( select case_id as sup_case_id , count(*) supervise_number from  ...

SQL语句中"(+)"与"left join...on"之间的使用方法

早些天在做报表导出时遇到了一件极为头痛的事情,一直纠结于怎么按照报表的样式把数据取出来,冥思苦想无果之后只能请教同事,结果同事看了我的SQL语句之后稍微做了一下修改,最后,画龙点睛的在最末尾加了一个"...
  • zlb824
  • zlb824
  • 2011年09月01日 19:16
  • 1294

(转)Oracle的left join中on和where的区别

今天遇到一个求某月所有天数的统计结果,如果某日的结果是0也需要显示出来,即: 日期                  交易次数   交易金额 2009-4-01           1      ...
  • fxh1985
  • fxh1985
  • 2012年06月11日 15:38
  • 118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对 left join 多个表的join 和 on 的分析Demo
举报原因:
原因补充:

(最多只允许输入30个字)