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

如何将关联Country与State表的SQL查询转换为Laravel Query Builder语句?

嘿,我来帮你把这条SQL转换成Laravel Query Builder的写法~

转换后的Laravel Query Builder实现

你的原始SQL用的是隐式内连接,转换成Laravel Query Builder时,用显式的join方法会更清晰,也符合Laravel的最佳实践。这里提供两种实用的写法:

基础Join写法

这是最直接对应你原始SQL的写法:

$results = DB::table('state')
    ->join('country', 'state.country', '=', 'country.id')
    ->select('state.id', 'state.state_name', 'country.Country_name')
    ->get();

代码对应说明:

  • DB::table('state'):指定查询的主数据表为state
  • ->join('country', 'state.country', '=', 'country.id'):对应你SQL中的关联条件state.country = country.id,这是Laravel中内连接的标准写法
  • ->select(...):完全匹配你原始SQL的字段选择,注意字段名的大小写(比如Country_name要和数据库中的实际字段名保持一致)
  • ->get():执行查询并返回包含结果的集合

别名简化写法

如果觉得表名太长,可以给表添加别名,让代码更简洁:

$results = DB::table('state as s')
    ->join('country as c', 's.country', '=', 'c.id')
    ->select('s.id', 's.state_name', 'c.Country_name')
    ->get();

要是你已经为这两张表创建了Eloquent模型(比如State和Country模型),还可以通过定义模型关联来更优雅地查询,但如果只是需要Query Builder的实现,上面两种写法就完全能满足你的需求啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:04:32