April 14, 2018
/
SQL, MYSQL, MYSQLi
İ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 |
+-----+