[英]Laravel 5 join same table
Hi I need generate two comparations in one table Users, for example i have this table users with different levels 嗨,我需要在一个表用户中生成两个比较,例如我有不同级别的表用户
ID name email level
-------+-------------+------------------+--------------
34 Jhon Fus jhon@jhon.com 1 (Medic)
35 Michael Chi mich@jhon.com 2 (Client)
And this table store the Orders 该表存储订单
ID client_id medic_id status created_at
---+-----------+------------+--------+-------
1 35 34 ok 2015-07-22 19:34:59
2 35 34 ok 2015-07-23 19:34:59
Expected output 预期产量
order id cliname status **medname** created
---------+-------------+--------+------------+-------
1 Michael Chi ok Jhon Fus 2015-07-22 19:34:59
2 Michael Chi ok Jhon Fus 2015-07-23 19:34:59
I try this but something is wrong: 我尝试这样做,但是出了点问题:
$orders= Order::join('users', 'users.id', '=', 'orders.client_id')
->join('users as usmedics', 'usmedics.id', '=', 'orders.medic_id')
->select(array('orders.id', 'users.name as cliname', 'orders.status', 'usmedics.name as medname' , 'orders.created_at'))
->orderBy('orders.created_at', 'DESC');
Any idea please... 任何想法请...
Simple just write a plain query: 简单只需编写一个普通查询:
$sql = "Query as you'd write it normally...";
$result = DB::select( DB::raw($sql));
You can still use bindings if needed: 如果需要,您仍然可以使用绑定:
$sql = "SELECT * FROM tbl1 WHERE user_id = :user_id and thing2 = :thing2";
$sqlBindings=[ 'user_id' => $user_id, 'thing2' => $thing2 ];
$result = DB::select( DB::raw($sql), $sqlBindings);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.