Bagaimana supaya company_name ini menjadi array?

Saya menjalankan query seperti ini

select users.full_name, user_job_history.company_name from users join user_job_history where users.user_id = user_job_history.user_fk

dan hasilnya seperti ini

[
 {
  full_name: "irman free",
  company_name: "Bukavalak"
 },
 {
  full_name: "sven",
  company_name: "Sven Edit Corp"
 },
 {
  full_name: "irman free",
  company_name: "Sakoo"
 }
]

apakah ada cara lain supaya hasil dari query diatas bisa mengasilkan data seperti ini

[
 {
  full_name: "irman free",
  company_name: ["Bukavalak", "Sakoo"] // <-- JIKA FULL_NAME MEMILIKI LEBIH DARI SATU
  //COMPANY_NAME MAKA AKAN MENJADI ARRAY SEPERTI INI
 },
 {
  full_name: "sven",
  company_name: "Sven Edit Corp"
 }
]

atau saya harus manipulasi sendiri menggunakan javascript hasilnya supaya bisa menjadi array seperti itu?(saya menggunakan node.js)

avatar iamfreestyler
@iamfreestyler

341 Kontribusi 57 Poin

Diperbarui 4 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

sepengalaman sih ada 2 cara, menggunakan group_concat atau menggunakan where in (2 query)

group_concat() : <pre> select users.full_name, group_concat(user_job_history.company_name SEPARATOR ',') as user_companies from users left join user_job_history on users.user_id = user_job_history.user_fk GROUP BY users.id </pre> kurang lebih hasil nya seperti ini :

<pre> [ { full_name: "irman free", company_name: "Bukavalak,Sakoo" // separator dengan ',' bisa di ganti sesuai ke inginan }, { full_name: "sven", company_name: "Sven Edit Corp" } ] </pre> hasil tersebut bisa menggunakan string split (pada php bisa menggunakan fungsi explode())

where in : pertama select users nya terlebih dahulu <pre> select users.full_name from users </pre> kedua

<pre> SELECT * FROM user_job_history WHERE user_job_history.user_fk IN (1, 2, ... &lt;id user&gt;) </pre>

avatar sukmaw
@sukmaw

340 Kontribusi 75 Poin

Dipost 4 tahun yang lalu

Tanggapan

Terimakasih gan, kayanya bagus nih

di coba dulu aja gan

Login untuk ikut Jawaban