Mantık gayet basit. Birbiriyle eşleşmeyen varsa dışarıda kalıyor.
Örneğin böyle bir tablomuz olduğunu düşünürsek
CREATE TABLE urun (`id` int);INSERT INTO urun (`id`)VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);CREATE TABLE urundetay (`id` int, `uid` int);INSERT INTO urundetay (`id`,`uid`)VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 7);
Yöntem 1
SELECT u.id FROM urun as uWHERE NOT EXISTS (SELECT * FROM urundetay as d WHERE d.uid = u.id )
Yöntem 2
SELECT u.id FROM urun as uLEFT OUTER JOIN urundetay as d ON u.id = d.uidwhere d.uid IS NULL
Çıktısı
+-----+| id |+-----+| 6 || 8 || 9 || 10 |+-----+