The
in
Abfrage`` Exists`and IN` geben zwei unterschiedliche Ergebnisse in MySQL
SELECT * FROM commodity
WHERE id IN (SELECT cid FROM specifications s WHERE s.id<600);
Die
EXISTS
Abfrage
SELECT * FROM commodity
WHERE exists(SELECT c.*
FROM specifications s,commodity c
WHERE s.id < 600 and c.id = s.cid);
Warum ich zwei separate immer bin Ergebnisse mit den oben genannten zwei Abfragen. Was mache ich falsch?
Sie sind sehr unterschiedlich. IN überprüft, ob ein bestimmter Wert in einer Abfrage vorhanden ist, während exist nur prüft, ob ein Datensatz existiert. Verwenden Sie das für Ihren Zweck geeignete. Die zweite Abfrage wird nicht so schnell wie die erste ausgeführt. –
Eine gerechtere Frage könnte sein: "Warum stellst du dir vor, dass sie gleich sind?" !?!? – Strawberry