两表左关联on之后的条件是对附表的过滤
SELECT a.EMPNO ,d.DEPTNO
FROM emp a
LEFT JOIN DEPT d
ON a.DEPTNO =d.DEPTNO
两表关联的时候
关联条件 on 之后的条件都是对 d表的过滤 a表的数据不会变的
情况1
on a.字段 = b.字段 常规操作 关联上的 b才有值
SELECT a.EMPNO ,d.DEPTNO
FROM emp a
LEFT JOIN DEPT d
ON a.DEPTNO =d.DEPTNO
and d.deptno = 10
情况2
on a.字段 = ‘xx’ a数据都显示 只有a.字段 = ‘xx’ 的那一行数据 b字段才有值
SELECT a.EMPNO ,d.DEPTNO
FROM emp a
LEFT JOIN DEPT d
ON a.DEPTNO =d.DEPTNO
and a.empno = '7788'
情况3
on 1 = 2 与a,d都没有关系 a数据都显示 b表数据都不显示
SELECT a.EMPNO ,d.DEPTNO
FROM emp a
LEFT JOIN DEPT d
ON a.DEPTNO =d.DEPTNO
and 1 = 2