1

これはそれほど難しいことではありませんが、私が探している用語が何であるかはわかりません。きっとあなたたちが私を助けてくれると思います。:)

tasks列を持つ行を持つテーブルがありますproject_id。それぞれがテーブル内の行project_id(の)を参照します。それぞれが特定のものに属しているため、列があります。idprojectsprojectuseruser_id

tasksここで、このテーブルから、特定ののproject_idいずれかに等しいすべてを選択したいと思います。projectuser

またはもっと簡単に言えば:

各タスクは、ユーザーに属するプロジェクトに属しています。

特定のユーザーに属するすべてのタスクを受け取るSELECTステートメントを作成したいと思います。各タスクとユーザー間の唯一のリンクは、プロジェクトを介したものです。

どうすればこれを達成できますか?

ご助力ありがとうございます!:)

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

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 に答える
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 に答える