gpt4 book ai didi

mysql - 使用复合 PRIMARY KEY 从多个表中进行 SELECT

转载 作者:行者123 更新时间:2023-11-29 01:37:50 24 4
gpt4 key购买 nike

我有以下表格:

Users: 
+--------+------+
| UserID | Name |
+--------+------+
| 1 | Bob |
| 2 | Mike |
| 3 | Tim |
| 4 | Joe |
+--------+------+

Friends:
+---------+---------+
| UserID1 | UserID2 |
+---------+---------+
| 1 | 2 |
| 1 | 3 |
| 3 | 4 |
| 4 | 2 |
+---------+---------+

现在假设 Bob 登录到我的服务。我需要运行一个查询来加载他所有 friend 的用户 ID 以及他们的姓名。

Bob's friends: 
+--------+------+
| UserID | Name |
+--------+------+
| 2 | Mike |
| 3 | Tim |
+--------+------+

请注意,“Friends”表有一个复合主键,同时使用 UserID1 和 UserID2。每个“友谊”只在表中列出一次。

解决这个问题的最佳方法是什么?换句话说,我应该使用什么查询来查找由用户 ID 和姓名组成的用户的 friend ?显然需要某种 JOIN 子句才能从多个表中选择数据。

最佳答案

首先,您想加入以了解 Bob 的 friend 是谁。然后你需要重新加入,才能看到他好友的名字。

SELECT u2.* FROM users u1 
JOIN friends ON friends.userid1 = u1.userid
JOIN users u2 ON u2.userid = friends.userid2
WHERE u1.name = 'Bob'

关于mysql - 使用复合 PRIMARY KEY 从多个表中进行 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35003042/

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