Union Operation的列数相同

Spa*_*rky 8 sql union sql-server-2008-r2 union-all

我正在通过工会和工会的所有逻辑和尝试的例子.令我困惑的是,为什么有必要在两个表中使用相同数量的列来执行联合或联合所有操作?

请原谅我,如果我的问题很愚蠢,但我无法在任何地方得到确切答案.从概念上来说,只要存在一个公共列,合并两个表应该很容易吗?(就像连接操作一样).但事实并非如此,我想知道为什么?

小智 7

JOIN操作不需要在两个表中选择相同数量的列。加入的UNION操作有所不同。可以将其视为两个单独的数据列表,它们可以在一个大块中一起“粘贴”。您不能有不匹配的列。

另一种查看方式是JOIN执行此操作:

TableA.Col1, TableA.Col2 .... TableB.Col1, TableB.Col2
Run Code Online (Sandbox Code Playgroud)

一个UNION会这样做:

TableA.Col1, TableA.Col2
TableB.Col1, TableB.Col2
Run Code Online (Sandbox Code Playgroud)

联接将列添加到行中,联合将更多行添加到现有行中。这就是为什么他们必须“匹配”。

马特