在Laravel的Query Builder中实现带关联与子查询的SQL语句
问题描述
我需要基于如下SQL语句编写Laravel查询构建器代码,但始终无法正常运行:
SELECT karyawan.id, karyawan.nama_lengkap, departemen.nama, jabatan.nama, ( SELECT tingkat FROM riwayat_pendidikan WHERE karyawan_id = karyawan.id ORDER BY tahun_selesai DESC LIMIT 1 ) AS pendidikan_terakhir FROM karyawan INNER JOIN jabatan ON karyawan.jabatan_id = jabatan.id INNER JOIN departemen ON jabatan.departemen_id = departemen.id;
最终实现代码
该需求现已完成,我通过在线SQL转Laravel查询构建器工具完成了转换,最终可正常运行的代码如下:
DB::table('karyawan') ->select('karyawan.id as id','karyawan.nama_lengkap as nama','departemen.nama as departemen' ,'jabatan.nama as jabatan','karyawan.jenis_kelamin','karyawan.nomor_hp_whatsapp','karyawan.status_pegawai', 'karyawan.tanggal_mulai_bekerja','karyawan.tanggal_keluar_bekerja','karyawan.tanggal_akhir_kontrak', 'karyawan.telepon_rumah','karyawan.telepon_kantor', DB::raw('(SELECT CONCAT(riwayat_pendidikan.tingkat," ", riwayat_pendidikan.jurusan) AS FIRSTNAME FROM riwayat_pendidikan WHERE karyawan_id = karyawan.id ORDER BY tahun_selesai DESC LIMIT 1 ) AS pendidikan_terakhir')) ->join('jabatan','karyawan.jabatan_id','=','jabatan.id') ->join('departemen','jabatan.departemen_id','=','departemen.id') ->where('departemen.nama','=','Staff') ->get();
内容的提问来源于stack exchange,提问作者Ezra Edwin
相关产品推荐
相关产品推荐

