MySQL Abfrage will nicht so wie ich, wer weiss Rat?
Gerald
- datenbank
0 Ilja
Hallo!
Ich stehe mit einer SQL auf dem Schlauch, wäre super, wenn mir hier jemand weiterhelfen könnte.
Folgende SQL ist die Basis (und funktioniert soweit)
SELECT
user.company,
user.last_name,
user.first_name,
user.email,
user.city
FROM
user
WHERE
user.customer = 1
AND user.newsletter = 0
AND user.last <= '2007-01-10'
Was sie tut: es werden alle Kunden ausgegeben, die keinen Newsletter wollen und nicht mehr nach dem 01.10. auf unserer Seite waren.
Nun möchte ich dies erweitern, es sollen auch die Kunden rausgefiltert werden, die zwischenzeitlich was gekauft haben, das steht in Tabelle "sold".
Die entsprechenden Käufe bekäme ich so:
SELECT
sold.*
FROM
sold
WHERE
sold.create >= '2007-01-10'
So, nun will ich das natürlich verbinden und dachte an etwas wie:
SELECT
user.company,
user.last_name,
user.first_name,
user.email,
user.city
FROM
user,
sold
WHERE
user.customer = 1
AND user.newsletter = 0
AND user.last <= '2007-01-10'
AND user.id != sold.userID
AND sold.create >= '2007-01-10'
Nun könnt Ihr Euch denken, was passiert... statt ca 500 Ergebnissen bekomme ich nun über 800.000, mit extrem vielen Dopplungen, ganz als würde jeder der AND Bedingungen für sich auch schon gelten.
Kann mir ein SQL Fuchs hier kurz Rat geben?
Danke,
Gerald
yo,
SELECT user.company, user.last_name, user.first_name, user.email, user.city
FROM user
WHERE user.customer = 1
AND user.newsletter = 0
AND user.last <= '2007-01-10'
UNION
SELECT user.company, user.last_name, user.first_name, user.email, user.city
FROM user
INNER JOIN sold ON user.id = sold.userID
AND sold.create >= '2007-01-10'
Ilja