有两张表:一张A表he一张B表
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 ;
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录;
inner join(等值连接) 只返回两个表中联结字段相等的行;
表A数据:
表B数据:
1、查询两张表中都有的记录:
sql: SELECT a.* FROM a INNER JOIN b ON a.a_id = b.b_id;
2、查询表A中有,表B中没有的数据:
sql: SELECT a.* FROM a LEFT JOIN b ON a.a_id = b.b_id WHERE b.b_id IS NULL;
3、查询表A中没有,表B中有的数据:
sql: SELECT b.* FROM a RIGHT JOIN b ON a.a_id = b.b_id WHERE a.a_id IS NULL;
以上2的结果源于对LEFT JOIN的理解:
sql: SELECT a.*,b.* FROM a LEFT JOIN b ON a.a_id = b.b_id;
而以上3的结果源于对RIGHT JOIN的理解:
sql: SELECT a.*,b.* FROM a RIGHT JOIN b ON a.a_id = b.b_id;
本文详细介绍了SQL中的三种主要联接查询方式:左联接(LEFT JOIN)、右联接(RIGHT JOIN)及内联接(INNER JOIN)。通过具体示例说明了如何使用这些联接来查询两个表中相匹配的记录,以及如何找出一个表中有而另一个表中没有的数据。
&spm=1001.2101.3001.5002&articleId=78085516&d=1&t=3&u=04169388fbd84ae1893bd750fbff3b56)
5867

被折叠的 条评论
为什么被折叠?



