1

这不会太难,但我不知道我在寻找什么术语。我相信你们可以帮助我。:)

我有一个表tasks,其中的行有一列project_id。每个project_id引用表id中的一行projects。每个都project属于某个特定的user,这就是它有一个列的原因user_id

我现在想tasks从这个表中选择所有project_id等于project某个user.

或者更简单地说:

每个 TASK 都属于属于 USER 的 PROJECT。

我想创建一个 SELECT 语句来接收属于特定用户的所有任务。每个 TASK 和 USER 之间的唯一链接是通过 PROJECT。

我该如何做到这一点?

非常感谢您的帮助!:)

4

4 回答 4

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
于 2012-12-14T14:11:23.367 回答
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
于 2012-12-14T14:11:25.433 回答
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
于 2012-12-14T14:11:12.577 回答
0

SQL小提琴

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
于 2012-12-14T14:15:03.867 回答