2012-04-12 33 views
0

我會盡量保持這一點儘可能簡單。按幾個表中的重複次數排序mysql

有3個表(A,B,C),每個表都有一個名稱列(只有一個名稱列)。我想選擇三個獨立表中的所有行(沒有重複),但更重要的是,要按重複次數排序,以便在表A,B和C中存在「Charles」時,它將顯示首先在結果。只有一個表格中存在的名稱將出現在結果的最後。任何幫助,將不勝感激。謝謝!

+0

查看我的編輯結果:使用'union all' – kasavbere 2012-04-12 01:03:45

回答

1
select name from 
(select name from A 
    UNION ALL 
select name from B 
UNION ALL 
select name from C) t 
group by name order by count(name) DESC 
+0

我喜歡這個。只是一個評論:當名稱爲null時,它將計爲0並且將位於結果集的底部。爲了得到它應該是'count(*)' – 2012-04-12 01:29:49

+0

美麗和優雅。非常好,謝謝! – 2012-04-12 16:23:24