Postingan lainnya
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)
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, ... <id user>) </pre>