Mysql join(连接查询) 与 union(联合查询) 的区别

  • join(连接查询):是将两个查询(或表)的每一行,以“两两横同对接”的方式,
    所得到的所有行的结果,即一个表中的某行,跟另一个表中的某行。
    进行“横向对接”,得到一个新行。

  • union (联合查询):指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。

  • 测试数据

mysql> select * from test;
+----+--------+------+------+
| id | name   | sex  | age  |
+----+--------+------+------+
|  1 | name1  | 女   |   15 |
|  2 | name1  | 女   |   15 |
|  4 | name2  | 男   |   30 |
|  5 | name50 | 男   |   12 |
+----+--------+------+------+

mysql> select * from user;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | name1 |   18 |
|  2 | name2 |   15 |
|  3 | name3 |   20 |
|  4 | name4 |   30 |
+----+-------+------+
  • 查询数据的结果区别:

    join(连接查询):横向拼接查询结果的数据。

    mysql> select * from test left join user on test.name=user.name;
    +----+--------+------+------+------+-------+------+
    | id | name   | sex  | age  | id   | name  | age  |
    +----+--------+------+------+------+-------+------+
    |  1 | name1  | 女   |   15 |    1 | name1 |   18 |
    |  2 | name1  | 女   |   15 |    1 | name1 |   18 |
    |  4 | name2  | 男   |   30 |    2 | name2 |   15 |
    |  5 | name50 | 男   |   12 | NULL | NULL  | NULL |
    +----+--------+------+------+------+-------+------+
    

    union (联合查询):纵向拼接查询结果的数据。

    mysql> select id, name, age from test union select id, name, age from user;
    +----+--------+------+
    | id | name   | age  |
    +----+--------+------+
    |  1 | name1  |   15 |
    |  2 | name1  |   15 |
    |  4 | name2  |   30 |
    |  5 | name50 |   12 |
    |  1 | name1  |   18 |
    |  2 | name2  |   15 |
    |  3 | name3  |   20 |
    |  4 | name4  |   30 |
    +----+--------+------+
    
  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
连接联合查询是关系型数据库中常用的查询操作。 左连接是指从左表中取出所有记录,并根据关联条件将右表中匹配的记录连接起来。如果右表中没有匹配的记录,则用NULL填充。左连接可以使用LEFT JOIN关键字来实现。\[3\] 联合查询是指将两个或多个查询的结果集合并在一起。UNION操作符用于返回两个查询结果集的并集,去除重复记录;而UNION ALL操作符返回两个查询结果集的并集,包括重复记录。联合查询可以使用UNIONUNION ALL关键字来实现。\[2\] 在使用左连接时,可以通过在关联条件中使用"is null"来筛选出右表中没有匹配的记录。而在联合查询中,可以通过在每个查询中使用不同的连接类型(左外连接和右外连接)来实现合并两个表的结果集。\[2\]\[3\] 总结来说,左连接联合查询都是用于在关系型数据库中进行数据查询的操作。左连接用于连接两个表并返回左表中所有记录以及与之匹配的右表记录,而联合查询用于合并两个或多个查询的结果集。 #### 引用[.reference_title] - *1* [MySQL数据高级查询连接查询联合查询、子查询](https://blog.csdn.net/weixin_34355715/article/details/92263423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [mysql 多表联合查询 的七种方式 全部 左连接连接连接](https://blog.csdn.net/qq_41486847/article/details/123126845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值