Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengemas kini Jadual dengan Data daripada Jadual Lain Berdasarkan ID Padanan dan Susun Isih?

Bagaimana untuk Mengemas kini Jadual dengan Data daripada Jadual Lain Berdasarkan ID Padanan dan Susun Isih?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 03:08:02811semak imbas

How to Update a Table with Data from Another Table Based on Matching IDs and Sort Order?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn