我有2张桌子。 1个表有3行,另一个表有5行。我想将这两个表连接在一起,结果应分别显示3行和5行。有没有办法可以实现使用sql语句?任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用UNION
,
SELECT colA, colB, colC, 1 as OrderThis
FROM tableA
UNION ALL
SELECT colA, colB, colC, 2 as OrderThis
FROM tableB
ORDER BY OrderThis ASC
使用UNION
UNION
有一个可选参数ALL
。如果省略ALL
参数,UNION
将清楚地显示已合并的所有唯一记录。
如您所见,我添加了虚拟列 OrderThis
。这将是您的行排序的基础。但问题是它会显示在结果列表中。解决方案是将其包装在子查询中,
SELECT colA, colB, colC
FROM
(
SELECT colA, colB, colC, 1 as OrderThis
FROM tableA
UNION ALL
SELECT colA, colB, colC, 2 as OrderThis
FROM tableB
) a
ORDER BY OrderThis ASC