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 u WHERE NOT EXISTS (SELECT * FROM urundetay as d WHERE d.uid = u.id )
Yöntem 2
SELECT u.id FROM urun as u LEFT OUTER JOIN urundetay as d ON u.id = d.uid where d.uid IS NULL
Çıktısı
+-----+ | id | +-----+ | 6 | | 8 | | 9 | | 10 | +-----+