前言
哈喽
我是你的人类朋友!!
今天简简单单复习一下mysql中的几种连接方式吧。
提升一波熟练度。😊
开始🦾
MySQL有以下几种连接方式:
-
内连接(INNER JOIN):返回两个表中匹配的行。 示例: 假设有两个表:
users和orders。users表包含用户信息,有两列:user_id和name。orders表包含订单信息,有两列:order_id和user_id。
需求:找出所有有订单的用户及其订单信息。 SQL 查询语句:
SELECT users.user_id, users.name, orders.order_id FROM users INNER JOIN orders ON users.user_id = orders.user_id;结果:
user_id name order_id 1 John 101 2 Alice 102 3 Bob 103 -
左连接(LEFT JOIN):返回左表中的所有行,以及与右表匹配的行。 示例: 使用上述的
users和orders表。需求:找出所有用户及其订单信息,如果用户没有订单,则订单信息列显示为 NULL。 SQL 查询语句:
SELECT users.user_id, users.name, orders.order_id FROM users LEFT JOIN orders ON users.user_id = orders.user_id;结果:
user_id name order_id 1 John 101 2 Alice 102 3 Bob 103 4 Mary NULL -
右连接(RIGHT JOIN):返回右表中的所有行,以及与左表匹配的行。 示例: 使用上述的
users和orders表。需求:找出所有订单及其对应的用户信息,如果订单没有对应的用户,则用户信息列显示为 NULL。 SQL 查询语句:
SELECT users.user_id, users.name, orders.order_id FROM users RIGHT JOIN orders ON users.user_id = orders.user_id;结果:
user_id name order_id 1 John 101 2 Alice 102 3 Bob 103 NULL NULL 104 -
全连接(FULL JOIN):返回左表和右表中的所有行。 示例: 使用上述的
users和orders表。需求:找出所有用户和订单的组合,如果没有匹配的行,则相应的列显示为 NULL。 SQL 查询语句:
SELECT users.user_id, users.name, orders.order_id FROM users FULL JOIN orders ON users.user_id = orders.user_id;结果:
user_id name order_id 1 John 101 2 Alice 102 3 Bob 103 4 Mary NULL NULL NULL 104
这些是MySQL中常用的连接方式,可以根据具体需求选择适合的连接方式来获取所需的数据。
总结
- 内连接:符合条件的才返回
- 左连接:左边的全要,右边没有可对应的就为NULL
- 右连接:右边的全要,左边没有可对应的就为NULL
- 全连接:左右两边的全部组合我都要,没有可对应的就先用NULL顶住!!!
下次见咯