У меня есть 4 таблицы, 3 данные и 2 сводной таблицы:Laravel SQL Query Builder
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 Query Builder?
Благодарим за любую помощь!
Спасибо, но это не работает, у меня теперь много результатов. Но, честно говоря, я ошибся в своем описании. конечно, у меня нет user_id в таблице проекта, когда у меня сводная таблица. Я изменил свой SQL к следующему: $ SQLQuery = «SELECT projects.id, projects.name ИЗ проектов INNER JOIN project_user о.е. ON projects.id = pu.project_id UNION ALL ВЫБРАТЬ projects.id, projects.name ОТ проектов INNER JOIN tasks t ON projects.id = t.project_id INNER JOIN task_user tu ON t.id = tu.task_id "; Любое предложение? – mastercheef85