タイトルが非常にはっきりしないかもしれない - 問題を1行で説明する方法がわかりませんでした。SQLクエリ - カウント条件に基づいてレコードを選択する
私は3つのテーブル
TOPIC VIDEO TOPIC_VIDEO
トピックを持って、1本のまたは2つのビデオを持つことができます。ビデオはサンプルビデオかどうかです。関連するカラム名
TOPIC
TOPIC_ID | NAME | COURSE_ID 1 | Excel - Add/Subtract | 1 2 | Excel - sort | 1 3 | Excel - filter | 1 4 | Excel - formulas | 1 VIDEO VIDEO_ID | VIDEO_URL 10 | www.youtube.com?v=123 12 | www.youtube.com?v=345 13 | www.youtube.com?v=567 14 | www.youtube.com?v=879 15 | www.youtube.com?v=443 TOPIC_VIDEO TOPIC_VIDEO_ID | TOPIC_ID | VIDEO_ID | IS_SAMPLE 1 | 1 | 10 | Y 2 | 2 | 12 | N 3 | 3 | 13 | N 4 | 3 | 14 | Y 5 | 4 | 15 | N
を持つテーブルで
サンプル・データだから、私は何をしようとしていることは特定のコースのすべてのトピックとそれに対応する動画を選択しています。トピックに複数の動画がある場合は、is_sampleを「N」として動画を選択します。
上記の例のように - topic_id 3にはvideo_id 13と14の2つの動画があるため、video_id 13を選択する必要があります。
これは、カウントは2であるならば、私は今では、これまで
select topic.*,count(topic.topic_id),video.video_id,topic_video.is_sample from topic left join topic_video ON topic_video.topic_id = topic.topic_id left join video ON video.video_id = topic_video.video_id where course_id=1 group by topic.topic_id
を持つクエリです - 私はis_sampleでレコードを選択したい=「N」 が可能これは、どのように私はこれを達成することができます。これを解決する
が複数の 'SELECT'される場合ステートメントを作成するには、カウントを使用します1つのクエリ内のステートメント容認できますか? –
これは、かなりのパフォーマンスヒットの結果となるだろう – Gublooo