1

Konu: delete from grandchild where ...?

Parent         (ID,Ad)
Child           (ID,masID,AD)
GrandChild  (ID,masID,Ad)

Parent.ID --> Child.masID --> GrandChild.masID (Child.ID)

Parent
ID Ad
1   Ahmet
----------------------
Child
ID masID Ad
1     1       Mehmet
2     1       Ayşe
-----------------------
GrandChild
ID masID  Ad
1      1      Kemal
2      1      Ali
3      2      Süleyman
4      2      Tarkan

Child tablosunu "delete from Child Where masID=1 " komutuyla siliyorum
GrandChild tablosunu bir döngüye sokmadan silme imkanım var mı?

2

Re: delete from grandchild where ...?

örneğinde neyin neye bağlı olduğunu tam olarak anlayabildiğimden emin değilim ama:

dele from grandchild where masid in (select * from child where masid=1)

not: hiç test etmedim.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

3

Re: delete from grandchild where ...?

sql subquery is invalid hatası veriyor
bağlantı;
parent.ID=Child.masID
Child.ID=GrandChild.masID

4 Son düzenleyen, cetinbasoz (25.02.2008 18:49:53)

Re: delete from grandchild where ...?

set deleted on && ya da where !deleted() ekle
delete from Child where MasID not in (select Id from Parent)
delete from GrandChild where MasID not in (select Id from Child)

5

Re: delete from grandchild where ...?

where yok hocam hangi kaydı silecek
anlamadım....!!!

6

Re: delete from grandchild where ...?

Anlamadım galiba ne yapmak istediğini.

7

Re: delete from grandchild where ...?

hocam anlatma özürlüyümdür biraz ama, şöyle anlatayım.
bir fatura,satınalma,sipariş fişi gibi bir fiş var. ve birbirine bağlı 3 tablo var. parent a bağlı kalem satırları var ve bu her satıra bağlı 3.bir tablo var.3.tabloda 2. tablo gibi 1 den fazla satırdan oluşuyor.

1 fişi oluşturan bu 3 tabloyu döngüye sokmadan silmek istiyorum.

8

Re: delete from grandchild where ...?

benimki select te id yerine * koyduğum için hata vermiş. bence çetin'in kod çalışır. ana tabloda olmayanları sil, orta tabloda olmayanları sil demiş. anahtar vermeye gerek yok.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

9

Re: delete from grandchild where ...?

ms sql serverdaki foreingn key lerdeki "ON DELETE CASCADE" olayı
ana kaydı sildiğimizde ona bağlı diğer tablolardaki kayıtları ms sql tarafından otomatik silinmesini
vfp manuel yapmak zorundayım

10

Re: delete from grandchild where ...?

Insert-Update-Delete yada Referential Integrity ilede bu tip standart silme islemlerini yaoabilirsin ama
ben manuel yapiyorum

11

Re: delete from grandchild where ...?

Elle yapmak zorunda degilsin ama elle yapilan kod daha iyi calisiyor. Tarifine gore kodda degisen birsey yok. Ana tabloda neyi sileceksen sil, sonra o iki satiri cagir.