Left Join 中 and 和 where 的区别

1.Student表:

 

 

2.SC表:

3.使用左外连接查询两个表,显示的数据是左表中的所有数据,包含NULL值。是下面的临时表

SELECT a.SId,a.Sname,b.score FROM Student a LEFT JOIN SC b ON a.SId = b.SId;

 

 4.使用where:

  where条件是在临时表生成后使用,再对临时表进行过滤的条件。生产临时表后所有不符合where条件的都去掉。

SELECT a.SId,a.Sname,b.score FROM Student a LEFT JOIN SC b ON a.SId = b.SId 
WHERE b.score > 60;

 

 

5.使用and:

  and条件是在生成临时表时使用的条件。左表(a)的记录将会全部表示出来,而右表(b)只会显示符合搜索条件的记录(例子中为: a.Sid = b.Sid),b表记录不足的地方均为NULL。AND 后面又多加一个条件,相当于对b表过滤时有两个条件,a中不符合b表条件的均为NULL。

SELECT a.SId,a.Sname,b.score FROM Student a LEFT JOIN SC b ON a.SId = b.SId 
AND b.score > 60;

 

posted @   湘summer  阅读(944)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示