复杂的数据不确定如何解释它

时间:2012-09-21 11:07:28

标签: mysql sql sqlite

您好我有一个名为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')

3 个答案:

答案 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)

这是你要实现的吗? 用户

  1. UserID(PK)
  2. 名称
  3. 朋友

    1. FriendID(PK)
    2. UserID(FK)

      select User.Name from User u join Friend f on f.UserID = u.UserID where Name = 'John'