Berikut adalah penjelasan dari query untuk update data dari referensi hasil query (sub query):
UPDATE ref_company_sales r
JOIN (
SELECT a.company_id, MAX(a.goals_action_plan_vendor_registration_status) AS status
FROM sales_cyclus_pre_introduction a
WHERE a.goals_action_plan_vendor_registration_status != ''
GROUP BY a.company_id
) AS subquery
ON r.id_company = subquery.company_id
SET r.status_vendor = subquery.status;
ref_company_sales
, yang diberi alias r
.company_id
dan nilai maksimum dari goals_action_plan_vendor_registration_status
untuk setiap company_id
dari tabel sales_cyclus_pre_introduction
yang diberi alias a
.MAX(a.goals_action_plan_vendor_registration_status) AS status
: Menghitung nilai maksimum dari goals_action_plan_vendor_registration_status
untuk setiap company_id
dan memberikan alias status
pada hasilnya.WHERE a.goals_action_plan_vendor_registration_status != ''
: Memfilter baris di mana goals_action_plan_vendor_registration_status
tidak kosong.GROUP BY a.company_id
: Mengelompokkan hasil berdasarkan company_id
sehingga mendapatkan satu baris per company_id
dengan nilai maksimum dari goals_action_plan_vendor_registration_status
.ON
menentukan kondisi penggabungan, yaitu mencocokkan id_company
dari tabel ref_company_sales
dengan company_id
dari subquery.status_vendor
dalam tabel ref_company_sales
akan diupdate dengan nilai status
dari subquery (yang merupakan nilai maksimum dari goals_action_plan_vendor_registration_status
untuk setiap company_id
).goals_action_plan_vendor_registration_status
untuk setiap company_id
dalam tabel sales_cyclus_pre_introduction
digunakan untuk mengupdate kolom status_vendor
dalam tabel ref_company_sales
, mencocokkan berdasarkan id_company
dan company_id
.