您好我有一个名为Users的表和一个名为friends的表,Friends表有两个数据类型UserID和FriendID,(两个数据类型的外键都是Users表的主键),
我需要提供一个ID并找到那些朋友姓名的列表,我不确定我是否错误地设计了表格,或者我应该重写查询。
我的查询如下,(到目前为止它只显示第一个匹配的人的详细信息)
SELECT Users.Name
FROM Users
WHERE Users.ID = SELECT Friends.UserID
FROM Friends,Users
WHERE Users.ID = (Select Users.ID
From Users
WHERE Users.Username = 'John')
答案 0 :(得分:1)
试试这个:
SELECT Users.Name FROM Users WHERE Users.ID IN -- Get names that belongt to ID's
(SELECT FriendID FROM Friends WHERE UserID = -- All ID's of the Friends of
(SELECT UserID FROM Users WHERE Name = 'John')) -- Johns ID
答案 1 :(得分:0)
我已经通过将第一个=更改为IN
来解决了这个问题答案 2 :(得分:-1)
这是你要实现的吗? 用户
朋友
UserID(FK)
select User.Name from User u join Friend f on f.UserID = u.UserID where Name = 'John'