Hallo,
CONTACTS
id | name | first_name
--------------------------
1 | Muster | Stefan
2 | Test | Andrea
3 | Beispiel | Carsten
4 | Exemplar | Heidi
PROJECTS_TO_CONTACTS
id | contact_id | project_id
----------------------------
1 | 2 | 4
2 | 1 | 7
3 | 3 | 4
4 | 2 | 7
5 | 4 | 4
dann gibts noch eine PROJECTS-Tabelle, hier aber nicht relevant.
Mit der ersten Abfrage hole ich alle CONTACTS, die z. B. dem PROJECT 4 zugeordnet sind:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE PROJECTS_TO_CONTACTS.PROJECT_ID=4
Jetzt möchte ich alle CONTACTS, die nicht dem PROJECT 4 zugeordnet sind, oder 0 sind und auch nicht in dem
Ergebnis der ersten Abfrage auftauchen (das passiert in den obigen Tabellen z. B. mit CONTACT_ID 2. Dieser
ist mehreren Projekten zugeordnet). Bisher sieht die Abfrage da so aus:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
Ich hoffe das war einigermaßen verständlich
Viele Grüße ...