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使两个查询看起来像一个查询。连接用于在单个查询语句中检查两个或多个表