我有一个相当复杂的查询(嗯,我认为无论如何!)来编写。它将包含很多连接。SQL:在查询时遇到问题
这里的想法是:任务链接到项目,项目链接到上下文。用户可以创建一个任务,他们将拥有该任务。但是,用户可以创建团队并与该团队共享项目。因此,作为该团队成员的任何人都可以看到该项目,这是任务。
我想要查询1)属于当前用户当前上下文的任务列表。和2)用户可以通过团队链接到项目来看到结果。
我想显示它所属的任务标题和项目名称。
加入团队时,用户指定哪个上下文将包含该团队的项目。这个想法是背景分解了项目。
以下是涉及的表格。 Users_teams和projects_teams用作链接表,将用户加入到团队和项目中。
users
-----------------
id
tasks
------------------
id | user_id | project_id | title
projects
------------------
id | name | user_id | context_id
teams
------------------
id | name | user_id
users_teams
------------------
id | user_id | team_id | context_id
projects_teams
------------------
id | project_id | team_id
我的第一个想法是创建2个单独的查询;一个获取用户拥有的任务列表,另一个获取用户链接到的任务列表。问题是,这样我就无法正确地排序,而且我的查询无论如何给出了奇怪的结果。我想也许有一种方法可以在一个查询中完成这一切?
我第一次查询,简直是:
SELECT * FROM tasks
JOIN projects on tasks.project_id = projects.id
WHERE tasks.user_id = 2 AND projects.context_id = 5
我想第二个将涉及加盟users_teams,projects_teams表。
我还没有想出你想要展示的东西! :S – JellyBelly
1)你可以上传一个带有结构和一些测试数据的sql文件吗? 2)你有什么要求吗?我看到它使用子查询完成(但可能不需要) – mishu
@ JellyBelly我想显示它所属的任务标题和项目名称,用于所有用户拥有的任务并链接到 – iamjonesy