逻辑错误:
1. 对外联接中非保留表的列值进行where 过滤 (抵消了外联接的作用,所有的外部行就会被过滤掉)
2. 在多联接操作中,任何外联接,如果后面紧跟着一个内联或右外联接,都会抵消掉外联接的外部行。(前提是:左边外联接的null值 与右联接又进行了on 的比较)
解决方案:1在第二个联接中也用左联接
2 注意设计联接的顺序, 先进行inner 内联接,再设计进行外联接
3. 在联接查询中 on后的and 条件是为了决定是否匹配,而不是最终的条件 与 where后 的条件不同
书中需要准备的数据: