Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar Membuat API dengan NodeJS
Gunakan kupon "skillbaru" untuk diskon 100 ribu!
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>