Artikel ini meneroka penggunaan SQL JOIN untuk memadam rekod daripada berbilang jadual dalam MySQL. Khususnya, kami mengkaji senario di mana kami ingin memadamkan semua siaran yang berkaitan dengan pelanggan apabila ia dialih keluar daripada sistem.
Andaikan kita mempunyai tiga jadual: pelanggan, projek dan jawatan. Jadual projek mempunyai client_id kunci asing yang merujuk kepada jadual pelanggan, dan jadual siaran mempunyai project_id kunci asing yang merujuk kepada jadual projek. Apabila pelanggan tertentu dipadamkan, kami mahu semua siaran yang dikaitkan dengan pelanggan itu dipadamkan.
Untuk ini, kami menggunakan SQL JOIN untuk memadamkan siaran secara tidak langsung. Berikut ialah kod yang dikemas kini:
<code class="language-sql">DELETE posts FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;</code>
Dalam pertanyaan ini, kami menggunakan INNER JOIN untuk menyatakan bahawa kami ingin memadamkan siaran yang mempunyai projek yang sepadan dalam jadual projek, di mana client_id sepadan dengan klien yang ingin kami padamkan.
Alternatif lain untuk memadamkan siaran ialah menggunakan pemadaman lata kunci asing. Ini melibatkan penambahan kekangan berikut pada jadual siaran:
<code class="language-sql">ALTER TABLE posts ADD FOREIGN KEY (project_id) REFERENCES projects(project_id) ON DELETE CASCADE;</code>
Dengan kekangan ini, apabila anda memadamkan item, semua siaran yang dikaitkan dengan item itu akan dipadamkan juga secara automatik.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Merentasi Pelbagai Jadual dalam MySQL Menggunakan SQL Joins?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!