如何在Select语句laravel 5.1中编写子查询?

时间:2016-03-03 07:16:09

标签: php mysql laravel-5

如何在laravel 5.1中编写此查询

 DB::table('appoinments')
   ->select(DB::raw(
       "(SELECT firstname FROM registration_details INNER JOIN users ON      registration_details.id = users.registerid WHERE appoinments.patientid =    users.id) AS patient",
       "(SELECT firstname FROM registration_details INNER JOIN users ON registration_details.id = users.registerid WHERE appoinments.doctorid = users.id) As doctor",
       "appoinments.appoinmentdate",
       "appoinments.id",
       "(SELECT timings FROM appoinment_time WHERE appoinment_time.id = appoinments.appoinment_time) AS apptime ",
       "(SELECT branchname FROM branches WHERE branches.id = appoinments.branchcode) AS branch"))
  ->get();

我试过这样但是我得到Undefined属性:stdClass :: $ id error

<THEAD>

2 个答案:

答案 0 :(得分:1)

请看这个链接。

https://laravel.com/docs/5.2/queries#advanced-wheres

希望你明白。

答案 1 :(得分:0)

终于得到了答案。感谢所有为我而努力的人。

$appoinment = DB::table('appoinments')->select(DB::raw("(SELECT firstname FROM registration_details INNER JOIN users ON registration_details.id = users.registerid WHERE appoinments.patientid = users.id) AS patientid"));
$appoinment = $appoinment->addSelect(DB::raw("(SELECT firstname FROM registration_details INNER JOIN users ON registration_details.id = users.registerid WHERE appoinments.doctorid = users.id) As doctorid"));
$appoinment = $appoinment->addSelect(DB::raw("appoinments.appoinmentdate"));
$appoinmentlist = $appoinment3->addSelect(DB::raw("appoinments.id"))->get();