Pertanyaan MySQL Terperinci: Mengemas kini Jadual menggunakan Data daripada Jadual Lain
Tugas di tangan ialah mengemas kini lajur e-mel dalam jadual perniagaan dengan data daripada lajur e-mel dalam jadual orang. Kedua-dua jadual disambungkan oleh lajur business_id.
Pendekatan mudah untuk pertanyaan kemas kini ini adalah seperti berikut:
<code class="sql">UPDATE business b SET b.email = ( SELECT email FROM people p WHERE p.business_id = b.business_id AND sort_order = '1' ) WHERE b.email = '';</code>
Walau bagaimanapun, pertanyaan ini hanya akan mengemas kini padanan pertama untuk setiap business_id dalam meja rakyat. Pengubahsuaian untuk memastikan kami mengemas kini semua rekod perniagaan yang berkaitan ialah:
<code class="sql">UPDATE business b, people p SET b.email = p.email WHERE b.business_id = p.business_id AND p.sort_order = '1' AND b.email = '';</code>
Dengan menyertai jadual perniagaan (b) dan orang (p) secara eksplisit menggunakan sintaks JOIN, pertanyaan memastikan bahawa hanya orang yang mempunyai susunan_urutan tertinggi nilai (iaitu, '1' dalam kes ini) mempengaruhi kemas kini. Ini lebih tepat sepadan dengan matlamat yang dimaksudkan untuk mengemas kini data perniagaan dengan e-mel orang yang mendapat kedudukan tertinggi untuk setiap perniagaan.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Jadual dengan Data daripada Jadual Lain Berdasarkan ID Padanan dan Susun Isih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!