MySQL UNION的结果条带化

时间:2011-11-03 23:24:30

标签: mysql union

我试图概念化如何设置3个表的UNION,以允许以条带化方式进行排序。

来自表A,B,C的UNION的前5名 结果如下:

一个 乙 C 一个 乙 C ....

这种事情是否适用于SQL,更具体地说是MySQL?

1 个答案:

答案 0 :(得分:0)

就个人而言,我会单独提取三个查询,然后用您最喜欢的编程语言处理它们。查询应该像这样运行得更快,因为它们不会那么复杂。

应该可以只使用SQL,通过在三个查询中的每个查询的输出中添加几列,然后将整批包装在外部选择中,例如;

SELECT * FROM ( <PUT THE FULL UNION HERE> ) ORDER BY table_name, row_count

你需要改变这样的每个查询;

@@rowCount=0;
SELECT 'A' AS table_name, (@@rowCount+1) AS row_count, <remaining fields>
FROM table_A;

现在,我不完全确定递增行计数器的语法,但我已经看到它在别处完成(可能在某处的StackOverflow上),所以也许其他人可以帮助这部分? (或者你可以通过搜索这个网站找到答案......)