1
私は4つのテーブル、3つのデータ及び2のピボットテーブルがあります。今、私は取得したいLaravel SQLクエリビルダ
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 =「プロジェクトのprojects.id、projects.name を選択 INNER ALL SELECTのprojects.id projects.id = pu.project_id UNION ON project_user PUのJOIN、projects.name プロジェクトから INNER JOINタスクt ON projects.id = t.project_id INNER JOIN task_user tu ON t.id = tu.task_id "; いずれかをお勧めしますか? – mastercheef85