1.left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
意味着返回的是左表+右表的结合表,结合了右表中的一些列(这句话很重要)
这张表很好的说明了问题
2.right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
3.inner join(等值连接) 只返回两个表中联结字段相等的行
踩的坑:语法格式的问题,联表查询时一步一步来就好了,别想着非要嵌套
错误案例:逻辑上感觉没毛病,想着先内联一个表再用外层表联这个,其实语法上已经错了
SELECT DISTINCT * FROM
sale_opp s
LEFT JOIN
SELECT * from se_special_customer_info ssci
INNER JOIN customer c
ON ssci.CUST_NAME=c.CUST_NAME
ON s.CUST_ID=c.CUST_ID
正确案例:
SELECT DISTINCT * from se_special_customer_info ssci
INNER JOIN customer c
ON ssci.CUST_NAME=c.CUST_NAME
RIGHT JOIN sale_opp s
ON c.CUST_ID=s.CUST_ID