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

Laravel使用QueryBuilder获取多外键关联的spec表对应文本值

错误原因

你当前写法报错是因为多次关联spec表但没有为每次关联设置独立别名,数据库无法区分不同关联的spec表,触发表名冲突错误。

正确实现代码

DB::table('contracts as c')
    ->join('spec as s1', 's1.id', '=', 'c.spec1')
    ->join('spec as s2', 's2.id', '=', 'c.spec2')
    ->join('spec as s3', 's3.id', '=', 'c.spec3')
    ->select(
        'c.id as contract.id',
        's1.text as spec1',
        's2.text as spec2',
        's3.text as spec3'
    )
    ->get();

补充说明

如果contracts表中的spec1/spec2/spec3字段允许为空,且你需要保留关联不到对应spec记录的合约数据,可以将join替换为leftJoin避免数据丢失。

内容的提问来源于stack exchange,提问作者Patas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:02