gpt4 book ai didi

sql - 理解多重连接的问题

转载 作者:行者123 更新时间:2023-11-29 14:33:34 26 4
gpt4 key购买 nike

我有以下表格:

users
____________
| id |
| first_name |
|____________|

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

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

我正在尝试让我是 (users.id 1) 创建者的 pre_task_plans 的所有用户

我有

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

关于sql - 理解多重连接的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48232474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com