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;

Penjelasan langkah demi langkah:
UPDATE ref_company_sales r:
  • Query ini akan mengupdate tabel ref_company_sales, yang diberi alias r.
JOIN:
  • Query melakukan JOIN dengan subquery yang menghasilkan data yang diperlukan untuk update.
Subquery:
  • Subquery ini mengambil 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 r.id_company = subquery.company_id:
  • Klausa ON menentukan kondisi penggabungan, yaitu mencocokkan id_company dari tabel ref_company_sales dengan company_id dari subquery.
SET r.status_vendor = subquery.status:
  • Bagian ini menentukan bahwa kolom 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).
Dengan query ini, Anda memastikan bahwa nilai maksimum dari 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.