我會盡量保持這一點儘可能簡單。按幾個表中的重複次數排序mysql
有3個表(A,B,C),每個表都有一個名稱列(只有一個名稱列)。我想選擇三個獨立表中的所有行(沒有重複),但更重要的是,要按重複次數排序,以便在表A,B和C中存在「Charles」時,它將顯示首先在結果。只有一個表格中存在的名稱將出現在結果的最後。任何幫助,將不勝感激。謝謝!
我會盡量保持這一點儘可能簡單。按幾個表中的重複次數排序mysql
有3個表(A,B,C),每個表都有一個名稱列(只有一個名稱列)。我想選擇三個獨立表中的所有行(沒有重複),但更重要的是,要按重複次數排序,以便在表A,B和C中存在「Charles」時,它將顯示首先在結果。只有一個表格中存在的名稱將出現在結果的最後。任何幫助,將不勝感激。謝謝!
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
我喜歡這個。只是一個評論:當名稱爲null時,它將計爲0並且將位於結果集的底部。爲了得到它應該是'count(*)' – 2012-04-12 01:29:49
美麗和優雅。非常好,謝謝! – 2012-04-12 16:23:24
查看我的編輯結果:使用'union all' – kasavbere 2012-04-12 01:03:45