Der Titel scheint nicht sehr klar zu sein - war nicht sicher, wie das Problem in einer Zeile zu erklären ist.SQL-Abfrage - Auswählen von Datensätzen basierend auf dem Zählerstand
Ich habe 3 Tabellen
TOPIC VIDEO TOPIC_VIDEO
Ein Thema ein oder zwei Videos haben kann. Die Videos sind entweder Beispielvideos oder nicht.
Beispieldaten in den Tabellen mit den entsprechenden Spaltennamen
THEMA
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
Also, was ich versuche zu tun, für einen gegebenen Kurs alle Themen und die entsprechenden Videos auswählen. Wenn ein Thema mehr als ein Video hat, möchte ich das Video mit is_sample als "N" auswählen.
Wie im obigen Beispiel - topic_id 3 hat zwei Videos mit video_id 13 und 14 - also sollte die video_id 13 ausgewählt werden.
Dies ist die Abfrage, die ich
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
So, jetzt so weit, wenn die Zählung 2 - ich die Platte mit is_sample = ‚N‘ Ist das möglich und wie kann ich erreichen dies auswählen möchten. Vielen Dank für Ihre Zeit
mehrere Sind IS_SAMPLE verbindet 'SELECT' Anweisungen in einer einzelnen Abfrage akzeptabel? –
würde das zu einem beachtlichen Leistungseinbruch führen – Gublooo