结合不同表格的行

时间:2012-09-14 03:16:09

标签: c# mysql

我有2张桌子。 1个表有3行,另一个表有5行。我想将这两个表连接在一起,结果应分别显示3行和5行。有没有办法可以实现使用sql语句?任何帮助将不胜感激。

1 个答案:

答案 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