2016-10-20 2 views
0

So sieht mein Code jetzt aus.Mit einer IN Oracle-Abfrage zu kämpfen

SELECT TITTEL, ISBN 
FROM book b, subject s 
WHERE b.ISBN = s.BOK AND s.sub IN('Database','Programming') ORDER BY b.year DESC; 

Mit dieser Abfrage finde ich jedes Buch (bok) mit dem Betreff Datenbank oder Programmierung.

Kong Olav 123 
Baser og enda mer baser 333 
Baser og enda mer baser 333 

Aber ich möchte die Bücher finden, die beide Datenbank und Programmierung als Thema haben. Wie kann ich das machen?

+1

hinzufügen 'GROUP BY TITTEL, ISBN HAVING COUNT (*) = 2' – dnoeth

Antwort

1

Sie sind in der Nähe. Sie können jetzt Aggregation verwenden:

SELECT TITTEL, ISBN 
FROM book b JOIN 
    subject s 
    ON b.ISBN = s.BOK 
WHERE s.sub IN ('Database', 'Programming') 
GROUP BY TITTEL, ISBN 
HAVING COUNT(DISTINCT s.sub) = 2 
ORDER BY MAX(YEAR) DESC; 
+0

Vielen Dank! Sehr beeindruckt, dass du verstanden hast, wonach ich gesucht habe. – Magnus

Verwandte Themen