这不是太难,但我不知道我在寻找什么术语。我相信你们可以帮助我。 :)
我有一个表tasks
,其行包含列project_id
。每个project_id
引用id
表中的一行(projects
)。每个project
都属于某个user
,这就是为什么它有user_id
列。
我现在想要从此表中选择tasks
等于某个project_id
的任何project
的所有user
。
每个TASK属于属于USER的PROJECT。
我想创建一个SELECT语句来接收属于特定USER的所有TASKS。每个TASK和USER之间的唯一链接是通过PROJECT。
我如何做到这一点?
非常感谢你的帮助! :)
答案 0 :(得分:3)
JOIN
表:
SELECT
t.*
FROM tasks t
INNER JOIN projects p ON t.project_id = p.project_id
INNER JOIN users u ON p.user_id = u.user_id
WHERE u.user_id = @AcertianUserId
答案 1 :(得分:2)
SELECT
tasks.*
FROM
users
INNER JOIN
projects ON users.id = projects.user_id
INNER JOIN
tasks ON projects.id = tasks.project_id
WHERE
users.id = 1
答案 2 :(得分:0)
尝试:
SELECT t.*
FROM user u, projet p, task t
WHERE u.id = p.user_id
AND p.id = t.project_id
AND u.id = your_id
或(同样的结果):
SELECT t.*
FROM user u
INNER JOIN projet p ON u.id = p.user_id
INNER JOIN task t ON p.id = t.project_id
WHERE u.id = your_id
答案 3 :(得分:0)
select t.*
from tasks t
join projects p on p.id = t.project_id
join users u on u.id = p.user_id
where u.id = 17