【发布时间】:2016-05-20 22:35:09
【问题描述】:
我有 4 个表、3 个数据和 2 个数据透视表:
projects
-----------
id | name
tasks
------------
id | name | project_id
users
------------
id | name
project_user
------------
project_id | user_id
task_user
------------
task_id | user_id
现在我要获取的是所有项目的列表,这些项目要么直接分配给特定用户,要么任务分配给该用户。
我已经尝试了很多东西,但不知何故,它不会真正起作用,我也不知道 Laravel Query Builder 怎么能做到。
这是我的最后一个 SQL 查询:
$projects = \DB::select( \DB::raw("SELECT * FROM projects, project_user
WHERE EXISTS (
SELECT 1 FROM tasks, task_user
WHERE tasks.status = 0
AND tasks.id = task_user.task_id
AND task_user.user_id = '".$userId."' )
AND projects.status = 0
AND projects.id = project_user.project_id
AND project_user.user_id = '".$userId."'") );
我需要如何进行查询来实现它?
是否可以使用 Laravel 查询生成器来实现?
感谢您的每一个帮助!
【问题讨论】: