2015.1.8 Left join 左连接

格式 select f1.a, f2.b form f1 left jion f2 on ....

注意:左边的查询部分只能有select和from,不能出现where order by等。若有必须在外嵌套一层 select

On 后面的条件只影响入选的f2.b字段有没有值,不影响总行数

(2016.9.9 上面说法错误!可以写where和order,写在on语句之后就行)

2017.10.25 两张表都带where条件的left join 写法

写法1: 左表的where条件写在on语句后,右表的where条件写在on里,或者二者颠倒,结果不变

   select f1.chart_type_id prm_id, f2.chart_type_id
            from TERMINAL_CHART_TYPE f1
            left join TERMINAL_CHART_TYPE f2
            on  f2.type_name='航路点坐标'
            where f1.type_name='标准仪表进场图'

写法2:上述where写法颠倒

    select f1.chart_type_id prm_id, f2.chart_type_id
            from TERMINAL_CHART_TYPE f1
            left join TERMINAL_CHART_TYPE f2
            on  f1.type_name='标准仪表进场图'
            where f2.type_name='航路点坐标'

写法3:用嵌套select写右表,右表where条件写在嵌套sql中

    select f1.chart_type_id prm_id, f2.chart_type_id
            from TERMINAL_CHART_TYPE f1
            left join (select * from TERMINAL_CHART_TYPE f2 where f2.type_name='航路点坐标') f2
            on 1=1
            where f1.type_name='标准仪表进场图'

结果都是:4 32

原文地址:https://www.cnblogs.com/mol1995/p/5964809.html