我有3张桌子
我想对两个表send_to_employees
和onprocess
进行合并。之后,我想将结果与employees
表联接。
我已经在原始SQL查询中完成了以下操作:
SELECT *
FROM (
SELECT
send_to_employees.caseid,
send_to_employees.docs,
send_to_employees.helper,
send_to_employees.employee_id
FROM send_to_employees
UNION
SELECT
onprocess.caseid,
onprocess.docs,
onprocess.helper,
onprocess.employee_id
FROM onprocess
) t1
INNER JOIN employees
ON employees.employee_id = t1.employee_id
但是我不知道如何使用Laravel做到这一点。请帮助我使用Laravel 5.8的查询生成器编写此查询。
答案 0 :(得分:0)
尝试此代码段。我认为应该可以。我正在使用查询生成器
//从表中获取所有记录
$data['recorddisplay'] = DB::table('send_to_employees')
->leftjoin('onprocess', 'send_to_employee.caseid', '=', 'onprocess.caseid')
->leftjoin('employees', 'send_to_employee.employee_id', '=', 'employees.employee_id')
->get();
答案 1 :(得分:0)
您正在寻找的东西是这样的:
DB::query()
->fromSub(
DB::table('send_to_employees')
->select([
'caseid',
'docs',
'helper',
'employee_id'
])
->union(
DB::table('onprocess')
->select([
'caseid',
'docs',
'helper',
'employee_id'
])
),
'inner'
)
->join('employees', 'employees.employee_id', '=', 'inner.employee_id')
->select(['inner.*', 'employees.*'])
->get();
成功的关键是使用fromSub()
,它允许您执行子查询。请确保不要在子查询中使用->get()
,因为它会包装一个集合并因此失败。