JOIN和UNION的区别是什么?我能举个例子吗?


当前回答

Union使两个查询看起来像一个查询。连接用于在单个查询语句中检查两个或多个表

其他回答

UNION操作符只是用于组合两个或多个SELECT语句。

而JOIN用于从每个表中选择行,可以通过内、外、左或右方法。

参考这里和这里。用例子来解释会更好。

记住,union将合并结果(SQL Server)(特性或错误?)

select 1 as id, 3 as value
union
select 1 as id, 3 as value

id,值

1,3

select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id

id值,id值

1,3,1,3

它们是完全不同的东西。

连接允许您在不同的表中关联相似的数据。

联合将两个不同查询的结果作为一个记录集返回。

联合操作是行垂直聚合的组合结果, Join操作是列的水平聚合的组合结果。

我喜欢把一般的区别想成:

join连接表 UNION (et all)组合查询。