Hallo Ingrid,
trotz Vorschau Syntaxfehler :-(
Zeige mir alle Kunden (Tabelle user), die keinen Newsletter wünschen und nichts gekauft haben (Tabelle order)
SELECT
u.last_name,
u.first_name,
u.email -- da gehört kein Komma hin :-)
FROM user u
LEFT JOIN `order` o -- order ist meiner Meinung nach ein schlechter
-- Spaltenname, da ein [link:http://dev.mysql.com/doc/refman/4.1/en/reserved-words.html@title=reserviertes Wort].
-- Ich persönlich vermeide lieber solche Namen.
ON u.id = o.customer
WHERE
u.newsletter = 0 -- kein Newsletter
AND o.customer [link:http://dev.mysql.com/doc/refman/4.1/en/comparison-operators.html#id3004919@title=IS NULL] -- kein Eintrag in der Tabelle order zu dieser Person
geht mit jeder mir bekannten MySQL-Version, sogar 3.23. Die Subselect-Variante ist möglicherweise performanter (nutze dazu EXPLAIN):
SELECT
u.last_name,
u.first_name,
u.email -- da auch nicht
FROM user u
LEFT JOIN `order` o
ON u.id = o.customer
WHERE
u.newsletter = 0 -- kein Newsletter
AND u.id NOT IN (SELECT o2.customer FROM `order` o2)
-- kein Eintrag in der Tabelle order zu dieser Person
geht aber, wie bereits bemerkt, erst ab MySQL 4.1 [1].
Freundliche Grüße
Vinzenz