You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:36:01