理解多重连接的问题
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
中的一些行,这样您只能看到自己的 id
和 first_name
我有以下表格:
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
中的一些行,这样您只能看到自己的 id
和 first_name