JOIN和UNION的区别是什么?我能举个例子吗?
当前回答
UNION操作符只是用于组合两个或多个SELECT语句。
而JOIN用于从每个表中选择行,可以通过内、外、左或右方法。
参考这里和这里。用例子来解释会更好。
其他回答
联合操作是行垂直聚合的组合结果, Join操作是列的水平聚合的组合结果。
它们是完全不同的东西。
连接允许您在不同的表中关联相似的数据。
联合将两个不同查询的结果作为一个记录集返回。
你可能会看到对两者相同的解释,但这完全令人困惑。
联盟:
加入:
UNION将来自查询的行依次排列,而JOIN生成笛卡尔积并对其进行子集——这是完全不同的操作。UNION的简单例子:
mysql> SELECT 23 AS bah
-> UNION
-> SELECT 45 AS bah;
+-----+
| bah |
+-----+
| 23 |
| 45 |
+-----+
2 rows in set (0.00 sec)
类似的JOIN的简单例子:
mysql> SELECT * FROM
-> (SELECT 23 AS bah) AS foo
-> JOIN
-> (SELECT 45 AS bah) AS bar
-> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
| 23 | 45 |
+-----+-----+
1 row in set (0.01 sec)
Union使两个查询看起来像一个查询。连接用于在单个查询语句中检查两个或多个表
推荐文章
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- MySQL OR与IN性能
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 关于数据库,每个开发人员应该知道些什么?
- 是什么导致这个ActiveRecord::ReadOnlyRecord错误?
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句