SQL UPDATE dengan Gabungan Jadual Berbilang
Mengemas kini medan jadual menggunakan data daripada berbilang jadual bercantum ialah operasi SQL yang kerap. Panduan ini menunjukkan cara melaksanakan tugas ini dengan cekap.
Senario:
Bayangkan pangkalan data dengan tiga jadual: item_master
(im), group_master
(gm) dan Manufacturer_Master
(mm). Kami akan menggunakan jadual ini untuk menggambarkan proses kemas kini. Sampel pengambilan data ditunjukkan di bawah:
<code class="language-sql">SELECT im.itemid, im.sku AS iSku, gm.SKU AS GSKU, mm.ManufacturerId AS ManuId, mm.ManufacturerName, im.mf_item_number, mm.ManufacturerID FROM item_master im, group_master gm, Manufacturer_Master mm WHERE im.mf_item_number LIKE 'STA%' AND im.sku = gm.sku AND gm.ManufacturerID = mm.ManufacturerID AND gm.manufacturerID = 34;</code>
Keperluan Kemas Kini:
Matlamatnya adalah untuk mengemas kini medan mf_item_number
dalam item_master
dengan nilai yang diperoleh daripada jadual yang digabungkan.
Penyelesaian SQL:
Pernyataan SQL berikut mencapai kemas kini ini:
<code class="language-sql">UPDATE im SET mf_item_number = gm.SKU -- Or other appropriate field from joined tables FROM item_master im JOIN group_master gm ON im.sku = gm.sku JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34;</code>
Penjelasan:
UPDATE im
: Menentukan jadual (item_master
alias sebagai im
) untuk dikemas kini.SET mf_item_number = gm.SKU
: Berikan nilai baharu kepada mf_item_number
. Nilai baharu diperoleh daripada lajur SKU
dalam jadual group_master
(gm
). Anda boleh menggantikan gm.SKU
dengan mana-mana medan lain yang berkaitan daripada jadual yang dicantumkan.FROM item_master im JOIN group_master gm ON im.sku = gm.sku JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID
: Mentakrifkan cantuman antara tiga jadual berdasarkan padanan nilai sku
dan ManufacturerID
.WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34
: Menapis baris yang akan dikemas kini, memastikan hanya yang sepadan dengan kriteria yang ditentukan akan terjejas.Melaksanakan pertanyaan ini mengemas kini medan mf_item_number
dalam jadual item_master
dengan nilai SKU
yang sepadan daripada group_master
, berdasarkan syarat gabungan dan penapis klausa WHERE. Ingat untuk melaraskan klausa SET
dan klausa WHERE
agar sepadan dengan keperluan kemas kini khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Medan Jadual Menggunakan Data daripada Jadual Berbilang Gabungan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!