Hallo Vinzenz!
Meiner Meinung nach besser:
SELECT DISTINCT number
FROM contact
LEFT JOIN contract
ON contact.id = contract.id\_contact-signatory
WHERE contract.id\_contact-signatory
IS NULL
Danke.
SELECT number FROM contact
WHERE id NOT IN(SELECTid\_contact-signatory
FROM contract)nicht mit NOT IN, sondern <> ANY
SELECT number
FROM contact
WHERE id <> ANY (SELECTid\_contact-signatory
FROM contract)
http://dev.mysql.com/doc/mysql/en/ANY_IN_SOME_subqueries.html
Meint, dass id ungleich irgendeinem id_contact-signatory sein muss. Das ist wahr --> Selbes Ergebnis wie bei SELECT number FROM contact.
NOT EXISTS dürfte auch eine Möglichkeit sein.
Wie geht das dann?
In sehr vielen Fällen sind Subqueries ineffizient. Dieses ist ein schönes Beispiel dafür.
Warum?
Bye,
Peter