Bulunmayan kayıtları tablolardan silme
Merhabalar, benim 3 adet tablom var.
- odemeler
- satislar
- musteriler
Müşteri id si yer almayan kayıtları satışlardan ve o satış id lerinide odemelerden silmek istiyorum.
Nasıl bir yol çizmeliyim eski kayıtları böylece yok etmek istiyorum.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Şöyle bir örnek verebilirim;
musteriler tablosu
musteri_id | musteri_adi |
---|---|
1 | Test #1 |
3 | Test #3 |
satislar tablosu
satis_id | satis_musteri_id |
---|---|
1 | 1 |
2 | 2 |
3 | 2 |
4 | 1 |
5 | 3 |
odemeler tablosu
odeme_id | odeme_satis_id | odeme_tutar |
---|---|---|
1 | 1 | 120 |
2 | 2 | 200 |
3 | 3 | 140 |
4 | 4 | 150 |
5 | 5 | 50 |
Bu tablolara göre 2 nolu müşteri silindi. Bir sorgu atarak müşteriler tablosunda bulunmayan satışları şöyle alabiliriz;
SELECT * FROM satislar
LEFT JOIN musteriler on musteriler.musteri_id = satislar.satis_musteri_id
WHERE musteri_id IS NULL
IS NULL
ile kontrol ediyoruz, zaten müşteriler tablosunda olmadığı için NULL dönecek, artık sen biliyorsun hangi satışlar müşterisi olmayanlara ait. Buna göre satışları ve satış id'lerine göre ödemelerini silebilirsin.
Kolay gelsin.