Wenn ich das ganze durch meine eigene HumanBrainSqlEngine laufen lasse, kommt das heraus:
SQL-Code:
SELECT A.*
FROM stopper A
INNER JOIN r_tubestopper B
ON B.stopper_id = A.article_id
INNER JOIN r_articleproduct C
ON C.article_id = B.tube_id
AND C.name = 'test'
INNER JOIN tubes D
ON D.article_id = C.article_id
UNION
SELECT A.*
FROM stopper A
WHERE NOT EXISTS ( SELECT article_id -- bloß keinen * hier!
FROM stopper A
INNER JOIN r_tubestopper B
ON B.stopper_id = A.article_id
INNER JOIN r_articleproduct C
ON C.article_id = B.tube_id
AND C.name = 'test'
INNER JOIN tubes D
ON D.article_id = Carticle_id
)
[Edit]
Das Folgende wird sich später als voreilig von mir erweisen:[/Edit]
und wenn ich mir das dann so ansehe, liefert diese Abfrage auf sehr umständliche Art und Weise das gleiche Ergebnis wie:
korrigiert mich, wenn ich das falsch sehe...
Weiter: in Deinem "Where Not Exists"-Statement, solltest Du unbedingt den Stern "*" durch eine konkrete Spalte ersetzen - bringt mehr Speed.
*sichgarnichtberuhigenkann*
Gruß