İki Tablo Arasındaki Farkı Bulmak

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 |
+-----+