Postingan lainnya
Join mysql laravel
saya ada 2 tabel
yang ingin saya hasilkan adalah seperti ini
Jadi nama fakultas menjadi PARENT, sedangkan nama progdi menjadi CHILD dari tiap masing2 fakultas
Yang sudah saya lakukan : Saya sudah melakukan join query dan menggunakan subquery Contoh :
SELECT a.nama_fakultas,b.nama_progdie faculties FROM faculties AS a JOIN ( SELECT kode_fakultas,nama_progdie FROM progdi) AS b WHERE a.kode_fakultas=b.kode_fakultas
Namun outputnya tidak sesuai harapan
6 Jawaban:
Jawaban Terpilih
coba ini <pre> SELECT a.nama_fakultas, GROUP_CONCAT(b.nama_progdie) AS major FROM faculties a JOIN progdi b ON a.kode_fakultas=b.kode_fakultas GROUP BY a.nama_fakultas; </pre>
lah kalo make laravel kan udah disediain relasi ????
@hendri : iya gan mmng udah disediakan, cuman outputnya sesuai gambar yg diatas FTI | TI FTI | SI FH | Hukum Nasional FH | Hukum UITE
Ynag saya bingung, apakah memang main di query, atau di bagian perulangan?
@hendri : klo gitu untuk perulangannya gmn y supaya hasil sesuai ekspetasi
ini yang sudah saya coba
<pre> $datas = Faculty::select('nama_fakultas','kode_fakultas')->get(); $uni = array();
foreach ($datas as $value) {
$code = $value['kode_fakultas'];
$prod = Progdi::select('nama_progdie','akreditasi')
-&gt;where('kode_fakultas', '=', $code)
-&gt;get();
foreach ($prod as $values) {
$uni[] = $values;
}
}
</pre>
cuma disini saya stuck untuk masukkin nama_fakultas ke dalam array jdi outputnya nanti
<pre> { data :[ fakultas :[ 'name' :'fti', 'progdi' : { 'nama_progdie' : 'ti', 'akreditasi' : 'a' } ] ] } </pre>