对 left join 多个表的join 和 on 的分析Demo
来源:互联网 发布:啾米网络是培训机构吗? 编辑:程序博客网 时间:2024/06/05 04:03
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 gLEFT JOIN xb x ONg.Sex_Id=x.Sex_Id;
2_SELECT*FROMgz gLEFT JOIN xb x ONg.Sex_Id=x.Sex_Id LEFT JOINzw zONx.Sex_Id=z.Zw_Id;
3_SELECT*FROMgz gLEFT JOIN xb x ONg.Sex_Id=x.Sex_Id LEFT JOINzw zONg.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语法解析与性能分析
最后感谢大家阅读,希望大家留言讨论!
阅读全文
0 0
- 对 left join 多个表的join 和 on 的分析Demo
- left join 和 left outer join (可解决多个表left join的问题)
- [转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
- Mysql中left join on and和left join on where 的区别
- left join,right join,inner join的条件on和where的区别
- left join和right join的区别
- Left Join和Inner Join的体会
- iner join和left join的区别
- mysql的left join 和 right join
- inner join和left join的区别
- mysql的left join,right join,inner join用法分析
- 【SQL】inner join、outer join、cross join和left join、right join、full join的区别
- left join和right join和inner join的区别
- Oracle的left join中on和where的区别
- Oracle的left join中on和where的区别
- Oracle的left join中on和where的区别
- Oracle的left join中on和where的区别
- Oracle的left join中on和where的区别
- Charles配置使用
- Spring+SpringMVC+Hibernate整合注解版
- [NOIP2017模拟]鱼群分裂
- 对UX设计5年内发展的5项预测
- 测井录井
- 对 left join 多个表的join 和 on 的分析Demo
- Unity如何实现网络通讯(三):观察者模式以及在网络模块的应用
- C#中的原子操作Interlocked你真的了解吗?
- (三) ElasticSearch基础知识
- C#--Winform项目核心--考勤模块(二)
- Comparable和Comparator接口
- MyBatis和Hibernate相比,优势在哪里?
- linux mysql 乱码问题
- Solaris命令行安装Oracle Solaris Studio报错