2012-04-12 10 views
0

私はできるだけシンプルにしておきます。複数のテーブルから重複した数で並べ替えます。mysql

それぞれに名前列(および名前列のみ)を持つ3つのテーブル(A、B、C)があります。私は3つの別々のテーブルから(重複なしで)すべての行を選択したいが、もっと重要なのは、 "Charles"がテーブルA、B、Cに存在する場合は、最初の結果。 1つのテーブルにのみ存在する名前は結果の最後に来ます。どんな助けもありがとう。ありがとう!

+0

私の編集結果を参照してください:use 'union all' – kasavbere

答えて

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

私はこれが好きです。ちょうどコメント:nameがnullの場合は0としてカウントされ、結果セットの最後になります。一番上に置くには、 'count(*)'にする必要があります。 –

+0

美しくエレガントです。素晴らしい作品です、ありがとう! –

関連する問題