SQL联接查询怎样写

发布时间:2025-04-12 17:27:13 作者:小樊
来源:亿速云 阅读:103

在SQL中,联接查询(JOIN)用于将两个或多个表中的行组合起来,基于这些表之间的相关列。以下是几种常见的联接查询类型及其基本语法:

1. INNER JOIN(内连接)

内连接返回两个表中匹配的行。

SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b ON a.common_column = b.common_column;

2. LEFT JOIN(左连接)

左连接返回左表中的所有行,以及右表中匹配的行。如果右表中没有匹配的行,则结果集中右表的列将显示为NULL。

SELECT a.column1, b.column2
FROM table1 a
LEFT JOIN table2 b ON a.common_column = b.common_column;

3. RIGHT JOIN(右连接)

右连接返回右表中的所有行,以及左表中匹配的行。如果左表中没有匹配的行,则结果集中左表的列将显示为NULL。

SELECT a.column1, b.column2
FROM table1 a
RIGHT JOIN table2 b ON a.common_column = b.common_column;

4. FULL OUTER JOIN(全外连接)

全外连接返回左表和右表中的所有行。如果某一行在另一个表中没有匹配的行,则结果集中该表的列将显示为NULL。

SELECT a.column1, b.column2
FROM table1 a
FULL OUTER JOIN table2 b ON a.common_column = b.common_column;

5. CROSS JOIN(交叉连接)

交叉连接返回两个表中所有可能的行组合。

SELECT a.column1, b.column2
FROM table1 a
CROSS JOIN table2 b;

示例

假设有两个表 employeesdepartments,它们的结构如下:

要查询每个员工及其所属部门的名称,可以使用以下SQL语句:

SELECT e.name AS EmployeeName, d.department_name AS DepartmentName
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;

这个查询将返回所有员工及其所属部门的名称,只包括那些在两个表中都有匹配的行。

希望这些示例能帮助你理解SQL联接查询的基本用法。如果你有更多问题,请随时提问!

推荐阅读:
  1. php如何实现全新的PDO数据库操作类
  2. 使用PHP怎么编写一个数据库调用类

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库

上一篇:怎样选择合适的域名

下一篇:SQL错误如何排查

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》