为什么外连接where就会报错?

为什么外连接where就会报错?

SELECT 
e.ename,e.empno,e.sal,d.dname
FROM t_emp e LEFT JOIN t_dept d where e.deptno=d.deptno;

这个会报错,为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学sql语句存在一点小问题,左连接语法应该是LEFT JOIN...ON,而不是LEFT JOIN...WHERE 。如下所示:

http://img1.sycdn.imooc.com//climg/607eb10109b5fa3504580074.jpg

SELECT
e.ename,e.empno,e.sal,d.dname
FROM t_emp e LEFT JOIN t_dept d on e.deptno=d.deptno;

如果同学想要书写where条件,可以在on后面进行添加。如:http://img1.sycdn.imooc.com//climg/607eb15809b1352806190101.jpg

祝学习愉快!

  • 阿山123 提问者 #1

    之前,只用join的时候,不是可以把on换成where吗?这个left join为啥不行?

    2021-04-20 19:41:26
  • 好帮手慕小尤 回复 提问者 阿山123 #2

    同学你好,1、因内连接的语法支持使用 JOIN.....where的语法,如下图所示:

    http://img1.sycdn.imooc.com//climg/607f84e709271f4d08950437.jpg

    2、内连接只保留符合条件的记录,所以查询条件写在ON子句和WHERE子句中的效果是相同的。但是外连接里,条件写在WHERE子句里,不合符条件的记录是会被过滤掉的,而不是保留下来,所以外连接无法通过WHERE进行连接。

    祝学习愉快!

    2021-04-21 09:55:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师