Vinzenz Mai: MySQL, Bestellungen mit best. Artikel incl. aller Artikel

Beitrag lesen

Hallo,

bei Fragen zu MySQL ist es immer eine gute Idee, die verwendete Version anzugeben, da sich die Fähigkeiten von MySQL zwischen verschiedenen Versionen deutlich unterscheiden. Dies gilt ganz besonders für Dein Problem.

In Access funktioniert das prima mit einer Unterabfrage:
SELECT Artikel.ArtikelID, Artikel.BestID
FROM Artikel
WHERE (((Artikel.BestID) In (SELECT BestID from Artikel where ArtikelID='12307')));

Aber MySQL macht das nicht.

Selbstverständlich ist Dein SQL-Statement für MySQL überhaupt kein Problem, vorausgesetzt Du verwendest mindestens MySQL 4.1, da Subselects ab MySQL 4.1 unterstützt werden. Das läßt mich vermuten, dass Du eine ältere Version von MySQL verwendest. Es wäre für Deine potentiellen Helfer weiterhin hilfreich, die Fehlermeldung zu wissen, die MySQL ausgibt.

Dein Subselect sollte sich mit Hilfe eines Selfjoin umschreiben lassen:

SELECT  
  a1.ArtikelID            -- verwende einen Alias für die Tabelle Artikel  
FROM Artikel a1           -- da Du zweimal auf diese Tabelle zugreifst  
INNER JOIN Artikel a2     -- und hier erneut einen Alias  
ON a1.BestID = a2.BestID  -- Verknüpfe über die BestID  
WHERE a2.ArtikelID = 12307

sollte das gewünschte Ergebnis in MySQL < 4.1 liefern.

Freundliche Grüße

Vinzenz