DELETE sorgusu, tablolardan satırları kaldırmak için kullanılan veri işleme dilinin bir alt parçasıdır. Katılım nasıl silinir MySQL röportajlar sırasında çok popüler bir sorudur. MySQL'de delete join ifadelerini kullanmak kolay bir işlem değildir. Bu bölümde DELETE sorgusunda INNER JOIN veya LEFT JOIN kullanarak birden fazla tablodaki kayıtları nasıl silebileceğinizi anlatacağız.
INNER JOIN ile JOIN'I SİL
İç Birleştirme sorgusu, bir tablodaki satırları ve diğer tablodan belirtilen koşulu karşılayan eşleşen satırları kaldırmak için Sil sorgusu ile birlikte kullanılabilir.
Sözdizimi
Aşağıda Inner join kullanarak birden fazla tablodaki satırları silmek için kullanılabilecek sözdizimi verilmiştir.
DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition
Burada hedef, belirtilen koşulla eşleşen satırları silmek istediğimiz tablo adıdır. Tablodaki satırları silmek istediğinizi varsayalım T1 Ve T2 Neresi öğrenci_kimliği = 2 ise aşağıdaki ifade gibi yazılabilir:
string.substring java
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2;
Yukarıdaki sözdiziminde hedef tablo (T1 ve T2) DELETE ve FROM anahtar kelimeleri arasına yazılmıştır. Oradan herhangi bir tablo adını çıkarırsak, o zaman beyanı sil yalnızca tek bir tablodaki satırları kaldırır. İle yazılan ifade AÇIK anahtar kelime, tablolardaki sileceğiniz satırlarla eşleşen durumdur.
Örnek
Diyelim ki iki masamız var öğrenciler Ve kişiler aşağıdaki verileri içerir:
Tablo: öğrenciler
Tablo: kişiler
Anlamak için aşağıdaki sorguyu yürütün Katılmayı Sil İç Birleştirme ile. Bu ifade, her iki tabloda da aynı kimliğe sahip bir satırı siler.
DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4;
Başarılı bir yürütmenin ardından aşağıdaki mesajı verecektir:
Şimdi, başarıyla silinen satırları doğrulamak için aşağıdaki sorguyu çalıştırın.
mysql> SELECT * FROM students; mysql> SELECT * FROM contacts;
Satırların nerede olduğunu görebilirsiniz. öğrenci_id=4 silindi.
SOL JOIN ile JOIN'ı SİL
Sol(ilk) tablodaki tüm satırları ve başka bir tablodaki eşleşen veya eşleşmeyen satırları döndüren SELECT deyimiyle LEFT JOIN yan tümcesini zaten öğrenmiştik. Benzer şekilde, sağ(ikinci) tablodan eşleşen satırları olmayan sol(ilk) tablodaki satırları silmek için DELETE anahtar sözcüğüyle birlikte LEFT JOIN yan tümcesini de kullanabiliriz.
asit özellikleri veritabanı
Aşağıdaki sorgu, DELETE ifadesinin, satırları silmek için LEFT JOIN'i nerede kullandığını daha açık bir şekilde açıklamaktadır. Tablo 1 eşleşen satırları olmayan Tablo 2 :
DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL;
Yukarıdaki sorguda, INNER JOIN ifadesinde olduğu gibi her ikisini de değil, yalnızca DELETE anahtar sözcüğüyle birlikte Tablo1'i kullanacağımıza dikkat edin.
Örnek
Bir tablo oluşturalım' kişiler ' Ve ' müşteriler ' aşağıdaki verileri içeren bir veritabanında:
Tablo: kişiler
youtube videoları vlc nasıl indirilir
Tablo: müşteriler
Sahibi olmayan müşteriyi kaldıran aşağıdaki ifadeyi yürütün. cep telefonu sayı:
DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL;
Başarılı bir yürütmenin ardından aşağıdaki mesajı verecektir:
Şimdi, başarıyla silinen satırları doğrulamak için aşağıdaki sorguyu çalıştırın.
mysql> SELECT * FROM customers;
Müşterinin cep telefonu numarasının bulunmadığı satırların silindiğini görebilirsiniz.