データベースに 3 つのテーブルがあります
PROJECTS
- id
- name
- date_created
- user_created
- status (or for disabled, 1 for enabled)
PROJECTS_MANAGERS (a project may have 0 or more managers)
- id
- project_id
- manager_username
PROJECTS_MEMBERS (a project may have 0 or more members)
- id
- project_id
- member_username
ステータスが 1 に等しい特定のユーザーが関与しているすべてのプロジェクトを一覧表示する mysql 結合クエリを作成しようとしています。具体的には、ユーザー名「bob」が「use_created」にあるすべてのプロジェクトを一覧表示するクエリ、「manager_username」、または「member_username」フィールドで、projects.status フィールドは 1 です。ただし、同じ project_id を持つ複数のマネージャーまたはメンバーが存在する可能性があります (もちろん、id と member_username は異なります)。
このコードを試してみましたが、うまくいかないようです (where 句でエラー '1054 unknown column 'projects.status' が表示されます)。「完全結合」を試みましたが、mysql がこれをサポートしていないことがわかりました。
SELECT *
FROM
`projects` as theProjects
LEFT OUTER JOIN
projects_managers
AS theManagers
ON theProjects.id = theManagers.project_id
WHERE
projects.status = 1
UNION ALL
SELECT *
FROM
`projects` as theProjects
RIGHT OUTER JOIN
projects_members
AS theMembers
ON theProjects.id = theMembers.project_id
WHERE
projects.status = 1
どんな助けでも大歓迎です。