首页 > 文章列表 > SQL 查询中的内连接、左连接和右连接:如何选择最合适的连接方式?

SQL 查询中的内连接、左连接和右连接:如何选择最合适的连接方式?

177 2025-01-31

SQL 查询中的内连接、左连接和右连接:如何选择最合适的连接方式?

关于内连接、左连接和右连接

在撰写查询 sql 时,了解内连接、左连接和右连接的区别至关重要。虽然原理容易理解,但实际应用中难免令人迷惑。本文将在易于理解的示例中,分享它们的应用场景。

1. 内连接

内连接用于取出两张表中共有数据的记录。以下示例中,a(左表)和b(右表)使用列 key 进行关联。

select * from a inner join b on a.key = b.key;

2. 左连接

左连接除了返回共有的记录外,还会返回右表中独有且与左表关联不上的数据。

select * from a left join b on a.key = b.key;

3. 右连接

与左连接类似,右连接除了返回共有的记录外,还会返回左表中独有且与右表关联不上的数据。

SELECT * FROM A RIGHT JOIN B ON A.key = B.key;

拓展应用:

  • 只取左表(a)独有数据:使用左连接,并使用 where b.key is null 查询右表中 key 为 null 的记录。
  • 只取右表(b)独有数据:使用左连接,并使用 where a.key is null 查询左表中 key 为 null 的记录。
  • 全连接:mysql 不支持全连接,但可以使用 union 实现类似效果,返回左右两表的所有记录。
  • 取出左右两表各自独有数据:使用全连接,再使用 where a.key is null or b.key is null 查询 key 为 null 的记录。
来源:1729921169