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