我试图概念化如何设置3个表的UNION,以允许以条带化方式进行排序。
来自表A,B,C的UNION的前5名 结果如下:
一个 乙 C 一个 乙 C ....
这种事情是否适用于SQL,更具体地说是MySQL?
答案 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上),所以也许其他人可以帮助这部分? (或者你可以通过搜索这个网站找到答案......)