结合两个具有相同结构的表格
问题描述:
我得到了两张表格,这两张表格在保存问题,姓氏和名字时是相同的。其中一个是英国,一个是美国。现在我想知道哪个人问的问题最多。我试着找到一个解决方案:结合两个具有相同结构的表格
SELECT QUESTION , SURNAME , FORENAME , Count(*)
FROM table_UK
GROUP BY SURNAME,FORENAME
ORDER BY 1
DESC LIMIT 10
这也给我我想要的结果,但这只是英国表。我想找出前10名最被问及的人。这意味着我必须把英国和美国的牌桌结合起来,然后列出他们。我不希望英国的TOP 10和美国的前10名。他们应该混合在一起。
现在我发现了“联盟”命令tables.So结合我试了一下,并执行该:
SELECT QUESTION , SURNAME , FORENAME , Count(*)
FROM table_UK
UNION
SELECT QUESTION , SURNAME , FORENAME , Count(*)
FROM table_US
GROUP BY SURNAME,FORENAME ORDER BY 1 DESC LIMIT 10
但这gaves我错了results.Somehow它计数错误。有人有一个想法,我怎么可以得到一个解决方案?
答
SELECT * FROM (
SELECT SURNAME , FORENAME , Count(*) as RANK
FROM table_UK
GROUP BY SURNAME , FORENAME
UNION
SELECT SURNAME , FORENAME , Count(*) as RANK
FROM table_US
GROUP BY SURNAME,FORENAME
) as t
ORDER BY t.RANK DESC
LIMIT 10
缺少'FROM'和外部查询的别名,'COUNT()'进入外部查询。使用'UNION ALL'。 – 2015-02-23 19:33:08
是的,修好了,谢谢 – Alex 2015-02-23 19:34:11
感谢这帮了很大的忙! – 2015-02-23 19:35:41