如何在结果中连接两个相似的表格?

3

我有两个拥有相似列的表格。我想简单地选择这两个表格,一个接一个地,这样如果table1有'x'行,table2有'y'行,我将得到'x + y'行。


3
如果有重复数据,您是希望将它们删除还是保留在原位?这很重要,因为UNION会删除重复数据——而UNION ALL不会删除,因此更快。 - OMG Ponies
4个回答

6
您可以使用UNION [ALL]来实现此操作。表不需要具有相同的列名,但您需要从每个表中选择相同数量的列,并且相应的列需要具有兼容的数据类型。
SELECT col1,col2,col3 FROM table1 
UNION ALL
SELECT col1,col2,col3 FROM table2

UNION ALLUNION更可取,因为它可以避免进行排序操作以消除重复项。


他的表格明显命名为table1和table2,而x和y被用作行数。我认为这个答案不可接受... ;) - nathan gonzalez
@nathan - 我会解决这个问题,只是为了取悦你!编辑:完成。 - Martin Smith

4

补充一下他们所说的,你可能需要添加一个Order By。这取决于你使用的SQL版本。

SELECT Col1, Col2, Col3
FROM   Table1
UNION
SELECT Col1, Col2, Col3
FROM   Table2
ORDER BY Col1

请注意,ORDER BY和GROUP BY必须放在UNION中的最后一个表之后。

2
select col1,col2,col3 from table1
union
select col1,col2,col3 from table2

OP想要所有行,因此使用UNION ALLUNION会消除重复项。 - Raj More

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接