将连接查询更改为 laravel
Posted
技术标签:
【中文标题】将连接查询更改为 laravel【英文标题】:Change join query to laravel 【发布时间】:2018-06-20 09:50:18 【问题描述】:我有一个mysql查询
SELECT a.`head_id` AS "Headid",a.`name` AS "HeadName", b.`id` AS "Emp_ID",b.`name` AS "Emp_name" FROM users a join users b ON a.id=b.head_id where a.`head_id`=63 or b.`id`=63
如何将此查询转换为 laravel?
$users = DB::table('users a')
->join('users b', 'a.id', '=', 'b.head_id')
->select('a.head_id as Headid','a.name AS HeadName','b.name AS Emp_name','b.name AS Emp_name')
->get();
但运气不好,这不起作用。请帮助我。
【问题讨论】:
【参考方案1】:您的查询构建器看起来不错,只需根据您的普通查询添加 where 过滤器
$users = DB::table('users as a')
->join('users as b', 'a.id', '=', 'b.head_id')
->select('a.head_id as Headid','a.name AS HeadName','b.name AS Emp_name','b.name AS Emp_name')
->where('a.head_id', '=', 63)
->orWhere('b.id','=', 63)
->get();
【讨论】:
@M khalid junaid 感谢您的回复,但我收到了一个错误,例如 'admin.users a' not exist..query like selecta
.head_id
as Headid
, a
.name
as HeadName
, b
.name
as Emp_name
, b
.name
as Emp_name
from users a
inner join users b
on @98765433@.=@9867654335@ b
.head_id
其中a
.head_id
= 63 或b
.id
= 63 如果我从users a
中删除单引号,它将起作用
@Ezra 尝试使用关键字users as a
以上是关于将连接查询更改为 laravel的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 DB 的情况下将 sql 查询更改为 laravel 模型查询