php - Laravel 5 加入同一张表

标签 php mysql laravel subquery

您好,我需要在一个表用户中生成两个比较,例如我有不同级别的表用户

   ID       name          email              level
    -------+-------------+------------------+--------------
   34       Jhon Fus       jhon@jhon.com      1 (Medic)
   35       Michael Chi    mich@jhon.com      2 (Client)

这张表存储了订单

   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

预期输出

   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

我试过了,但出了点问题:

$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');

任何想法请...

最佳答案

简单的只需要写一个简单的查询:

$sql = "Query as you'd write it normally...";
$result = DB::select( DB::raw($sql));

如果需要,您仍然可以使用绑定(bind):

$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);

关于php - Laravel 5 加入同一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31835320/

相关文章:

php - 在 Laravel 中允许多个密码重置 token

python - 将 MySQL 数据库凭据存储在一个文件中,然后在主脚本中调用该文件

MYSQL插入concat结果

php - Laravel 5 项目结构(插件系统)

php UPDATE 查询不起作用

php - PDO 使用 while 和 foreach 获取

php - 从联结表中选择一定数量的行

Laravel flash session 存储数据两次

Php artisan 制作:auth command is not defined

php - 改进当前的PHP函数以处理错误