衡阳县做淘宝网站建设,七种人不宜学软件工程,高级网站开发工程师证书,c2c网站名称原文 sql多表查询之一#xff1a;Where 和 On的秘密 对于还在SQL初级阶段的朋友来说#xff0c;sql多表查询问题是一个比较有趣也容易出错的技术。什么时候会用到sql多表查询呢#xff1f;是在两张或两张以上表单中通过某几个字段进行互联管理的时候#xff0c;这就不得不说…原文 sql多表查询之一Where 和 On的秘密 对于还在SQL初级阶段的朋友来说sql多表查询问题是一个比较有趣也容易出错的技术。什么时候会用到sql多表查询呢是在两张或两张以上表单中通过某几个字段进行互联管理的时候这就不得不说说sql多表查询中Where 和 On的秘密。 在了解sql多表查询中Where 和 On的秘密之前让我们先来温习一下连接基础吧 按列a把两表连接请问各种连接方式的结果的结果 语法呢 左 select * from a Aa left join b Bb on Aa.aBb.a 右 select * from a Aa right join b Bb on Aa.aBb.a 内 select * from a Aa join b Bb on Aa.aBb.a 完全 select * from a Aa full join b Bb on Aa.aBb.a 迪卡尔 select * from a,b 是不是很简单呢接下来我们来看sql多表查询中Where 和 On的秘密 大家想想依据下表 下面语句出来的结果是什么 select * from a _a left join b _b on _a.id_b.id where _b.name1 select * from a _a left join b _b on _a.id_b.id and _b.name1 先想想再看结果吧^_* sql多表查询中Where 和 On的秘密在SQLserver 中的执行顺序是 先join后where 所以当条件写在where里结果如下 条件写在on里结果如下 Where 和 On是不是很有趣你也试试吧 下一个 请说出下面语句各返回多少记录 select * from a a left join b b on a.idb.id where a.id1 select * from a a left join b b on a.idb.id and b.id1 select * from a a left join b b on a.idb.id and a.id1 select * from a a left join b b on a.id1 先想想再看答案P — select * from a a left join b b on a.idb.id where a.id1 — 原因是先执行连接条件,再执行where部分,所以只有1条记录 — select * from a a left join b b on a.idb.id and b.id1 — 原因是满足a.idb.id and a.id1 条件的只有一条,但left join是对没有附和条件的加null处理,所以最后结果是3条 — select * from a a left join b b on a.idb.id and a.id1 — 原因是满足a.idb.id and a.id1 条件的只有一条,但left join是对没有附和条件的加null处理,所以最后结果是3条 — select * from a a left join b b on a.id1 — 原因是在做完迪卡尔后,满足a.id1 条件的有3条,但left join是对没有附和条件的加null处理,所以最后结果是5条