0

私は2つのSQLテーブルを持っています:"episode"そして"topic"、各トピックとエピソードにはビデオがあります(エピソードにはいくつかのトピックが含まれていますが、私の問題にとっては重要ではありません)。それらには独自のフィールドがありますが"title", "date", "video_url""count"共通のフィールドがあります(カウントはビデオが視聴された回数です)。

クエリを1つだけ使用して、カウントフィールドに基づいて上位5つを選択したいと思います。

したがって、クエリをマージする必要があります。

select title, date, video_url, count from episode order by count desc 

「トピックから」と同じクエリ。

4

1 に答える 1

2
 select top 5 *
 from
 (
      select title, date, video_url, count from episode
      union all
      select title, date, video_url, count from topic
 ) as A
 order by count desc

タイプ名を追加して、エピソードかトピックかを確認できます。また、サブクエリに5を追加topして、サーバーがすべてのレコードを取得する必要がないことを認識できるようにすることもできます。

 select top 5 *
 from
 (
      select top 5 title, date, video_url, count, 'episode' as type_name from episode order by count desc
      union all
      select top 5 title, date, video_url, count, 'topic' as type_name from topic order by count desc
 ) as A
 order by count desc
于 2012-10-25T12:40:37.603 に答える