理解多重连接的问题

Issues with understanding multiple joins

我有以下表格:

users
 ____________
| id         |
| first_name |
|____________|

pre_task_plans
 ____________
| id         |
| creator_id | (fk user_id)
|____________|

pre_task_plan_users
 __________________
| id               |
| user_id          |
| pre_task_plan_id |
|__________________|

我正在尝试获取 pre_task_plans 的所有用户,我是 (users.id 1)

的创建者

我有

SELECT users.*
FROM users
JOIN pre_task_plans as ptp on ptp.creator_id = 1
JOIN pre_task_plan_users as ptpu on ptpu.pre_task_plan_id = ptp.id

但返回的用户不在与我的 pre_task_plans 相关的 pre_task_plan_users 中。我对 2nd JOIN 的工作原理有什么不了解?

PSQL 9.6.2

SELECT users.*, other.*
FROM users
JOIN pre_task_plans as ptp on ptp.creator_id = users.id
JOIN pre_task_plan_users as ptpu on ptpu.pre_task_plan_id = ptp.id
join users as other on pre_task_plan_users.user_id = other.id
where users.id = 1

您将每个 pre_task_plan 连接到它创建的 user,然后将结果缩小到您作为用户(因此只有您创建的那些)。

您还应该显示 pre_task_plans 中的一些行,这样您只能看到自己的 idfirst_name