2016-03-19 29 views
1

Tablo 1 sorgusundan, id'in kopyalandığı tablo 2'deki bir satırı silmeye çalışıyorum. Bu satırı tablo 2'den ve tablo 1'den silmek istiyorum ancak tüm çalışmayı kullandığım ancak tablolardan silinmediği bir sorunla karşılaşıyorum.SQL Veri kimliğinin iki tabloda yer aldığı tablodan komut silme

delete 
from doctorsTable 
where Users_idUser in (select Users_idUser from Users where idUser = 20) 

enter image description here

enter image description here

Bu: Ben tablolar var ilişkinin ben bu komutu kullanılır

(DB tasarımını yapmak için mysql tezgahını kullanılan) kaynaklanıyor olabilir inanıyoruz ilişkisindendir: enter image description here

Belirtildiği gibi, ben tryi User_idUser = 20 ile doctorsTable'dan satırı silmek için ng ve otomatik olarak 20 ile de Users IDUser tablosundan silinir. Yukarıdaki komutu denedim, çalışır gibi görünüyor ama gerçekten satırları silmiyor. lütfen yardım et !

+0

** 1) ** Alt sorguda '(Users from user_idUser, User from idUser = 20)' Users' tablosunda 'Users_idUser 'alanı yok. Belki de bunun yerine 'idUser' kullanmak istediniz? ** 2) ** İstediğiniz tek şey "doctorsTable" dan bir kaydı silmekse, bu karmaşık komut bana pek bir anlam ifade etmiyor. IF (sadece) Eğer tablolarınızı ve onların ilişkilerini doğru anlıyorum .. neden kullanmıyorsunuz 'doctorsTable silmek Nereden Users_idUser = 20' dir? – LazyOne

+0

Merhaba @LazyOne Bunu denedim ama aynı zamanda doktorlardan gelen satırı silmiyor gibi görünüyor. Alt sorgumu tamir ettim ama hala çalışmıyor. – Aboogie

cevap

0

Yapmak istediklerim, her satırdaki idUser ile tüm satırları tek bir deyim ile silmektir.

Sen katılma ve bunları ister silerek yapabilirsiniz:

DELETE doctorsTable, Users 
FROM doctorsTable 
INNER JOIN Users ON doctorsTable.Users_idUser = Users.idUser 
WHERE doctorsTable.Users_idUser = 20 

SİL satırda, eşleşen satırları silmek gelen tablo (lar) belirtin.

+0

Tam olarak benim yapmak istediğim şey ve kodunuz doğru görünüyor ama satırları silmiyor. Bu tablo ilişkileri nedeniyle olabilir mi? – Aboogie

+0

@Aboogie 1) Silmediğinden emin misiniz? Demek istediğim - Refresh butonunu birkaç kez (tablo görünümünde) deneyin - sadece 2 durumunda) Genellikle mysql "xx satırları etkilenmiş" veya benzer bir şeyle yanıt vermelidir - bu tür mesajlardan herhangi birini görüyor musunuz? Not; Bu tablo, diğer tablolara başvurular olabileceğinden, 'Users' tablosundan kayıtları silmeyebilir? – LazyOne

+0

Kodu güncelledim, bu çalışmalıdır. Tablonun nerede olduğunu değiştirdim. – ndo

İlgili konular