gpt4 book ai didi

MySQL 内部连接 ​​2 列

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:26 25 4
gpt4 key购买 nike

我有一个表 users 有 2 个字段:id、name 和另一个表 friends 有 2 个字段:userid1 userid2。

所以这意味着 userid1 是 userid2 的 friend 。我想用一个内连接或左连接来显示这一点:

userid1 名称(从 users 表中获取)是 userid2 名称(从 users 表中获取)的 friend

东西

SELECT * FROM friends INNER JOIN users ON friends.userid1 = users.id AND friends.userid2 = users.id 但这不起作用。

请问有什么很好的解释吗?

例如,如果我在用户表中有下一个详细信息:ID : 1 名称 : FinalDestiny编号:2 姓名:乔治

以及 friend 表中的下一个详细信息:ID1:1 ID2:2

所以这意味着 1 和 2 是 friend 。

我需要一个查询来获取 1 的名字和 2 的名字,并回应他们是 friend

FinalDestiny 是乔治的 friend

最佳答案

我知道您指定要通过一个连接完成此操作,但在我看来您需要两个连接。我相信这个查询会给你你需要的东西:

SELECT u1.Name, u2.Name<br/>
FROM Users u1, Users u2, Friends f<br/>
WHERE u1.id = f.userid1 AND u2.id = f.userid2

我在 Users.id = Friends.userid1 上加入 Users 表和 Friends 表。然后,我将这个新表与 (new table).userid2 = Users.id 上的 Users 表连接起来。这会生成一个包含 4 列的表。这些列是 Friends 表的原始 2 列,另外还有 2 列用于 friend 的姓名。 u1 , u2 , 和 f并引用连接的三个表。 users 表与 friends 表连接了两次。 u1是在 Friends.userid1 = User.id 上加入的 Users 表的副本。 u2是在 Friends.userid2 = User.id 上加入的 Users 表的副本。

从这个有 4 列的表中,我只选择 friend 的名字。

如果需要更多解释,请告诉我。

关于MySQL 内部连接 ​​2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259495/

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