【问题标题】:A complex data not sure how to explain it复杂的数据不知道如何解释
【发布时间】:2012-09-21 11:07:28
【问题描述】:

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

【问题讨论】:

  • 你需要问一些事情才能有人回答
  • 如何发布一些示例数据和表结构,然后您想要什么作为查询结果?

标签: mysql sql sqlite


【解决方案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

【讨论】:

    【解决方案2】:

    我已经通过将第一个 = 更改为 IN 来解决它

    【讨论】:

      【解决方案3】:

      这是你想要达到的吗?? 用户

      1. 用户 ID (PK)
      2. 姓名

      朋友

      1. 朋友 ID (PK)
      2. 用户 ID (FK)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        相关资源
        最近更新 更多