double join sql同一个表

时间:2017-03-07 12:33:48

标签: sql laravel join double

我有一张表“付款”,其中包含以下内容: ID CLIENT_ID 用户身份 和支付款项。

我有另一个表用户 ID 名字 中间名字 姓 功能(客户端或管理员)

使用以下sql查询加入用户

$payments = Payment::findpayments()
    ->select('users.firstname', 'users.middlename', 'users.lastname', 'payments.*')
    ->join('users','payments.client_id', '=', 'users.id')
    ->where('payments.id', '=', $id)
    ->get();

现在我从客户端获取firstname等,但我需要为客户端获取firstname中间名lastname两次,管理员sombody有任何想法如何加倍加入同一个表?

1 个答案:

答案 0 :(得分:0)

您可以通过别名双重加入。这些行中的东西

->join('users','payments.client_id', '=', 'users.id')
->join('users as admin','payments.client_id', '=', 'admin.admin_id')

请确保您正确加入它们,但只要您将它们作为别名,我认为应该没问题。

请记住,您还需要在选择

中对它们进行别名
->join('users','payments.client_id', '=', 'users.id')
->join('users as admin','payments.client_id', '=', 'admin.admin_id')
->select('users.name', 'admin.name as admin_name')