SQL-Grundlagen: Wer kann helfen?

Harzteufel

Erfahrenes Mitglied
Hallo,
ich soll mir aus einer Tabelle alle Bücher der Autoren X und Y auflisten lassen. Der Prof möchte zwei Möglichkeiten haben, wie man dies erreicht.
Mir fällt nur: SELECT * FROM buch WHERE autor='X' OR autor='Y'; ein.

Mein zweiter Vorschlag wäre: SELECT * FROM buch WHERE autor LIKE 'X' OR autor LIKE 'Y'; Dies ist aber sicherlich zu identisch, oder? Geht das eventuell auch mit SELECT GROUP BY, denn das hatten wir heute in der Vorlesung?

Vielen Dank für eure Hilfe...
 
Hi,

nein, aus meiner Sicht sind das zwei verschiedene Abfragen, die je nach Menge der Datensätz auch unterschiedlich performant sind.
Eine dritte Möglichkeit wäre auch noch:
SQL:
SELECT * FROM buch WHERE autor IN ('X', 'Y')
 
Danke für Deine Antwort...
Ich bin noch auf folgendes gestossen, zumindestens bekomme ich in phpMyAdmin keine Fehlermeldung, aber ob dies korrekt ist?

SELECT autor='X',autor='Y' FROM buch ORDER BY autor ASC;
 
Leg doch eine einfache Tabelle an, die dass Feld autor enthält, 3, 4 Datensätze rein und teste deinen Query.
Kann mir aber nicht vorstellen, dass der funktionieren wird. Hab sowas noch nie gesehen.
Bei deinem Query würdest du glaub ich nur 2 Datensätze bekommen, einer mit X, einer mit Y.
Gibt es mehrere Autoren mit dem selben Namen, würden die nicht beachtet werden.
 
Ach verdammt, Du hast Recht... irgendwie kommt nicht das dabei heraus, was ich mir vorstelle... Aber was wäre dann eine alternative Abfrage zu:

SELECT * FROM buch WHERE autor='X' OR autor='Y';?
 
Hallo,

evtl will dein Prof auf "UNION" hinaus?

Code:
SELECT * FROM buch WHERE autor='X' 
UNION SELECT * FROM buch WHERE autor='Y';

grüße
Hendrik
 
Zurück