2012-09-21 16 views
0

嗨我有一個名爲Users的表和一個名爲friends的表,friends表有兩個數據類型UserID和FriendID(兩個數據類型的外鍵都是Users表的主鍵) ,一個複雜的數據不知道如何解釋

我需要給一個ID並找到這些人friends'name的列表,我不知道如果我錯誤地設計了表或我應該重寫查詢。

我的查詢是如下,(到目前爲止,它只是顯示第一個匹配的人的細節)

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') 
+1

你要問什麼,以便別人解答 – Patrick

+1

怎麼樣發佈一些示例數據和表結構,然後你想要的東西解決了它查詢的結果? – Taryn

回答

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

這是你想要實現? 用戶

  1. 用戶ID(PK)
  2. 名稱

朋友

  1. FriendID(PK)
  2. 用戶ID(FK)

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

+0

u。像'約翰'? – CloudyMarble

+0

哎呀錯字錯誤,它的'u.Name' – FosterZ

+0

仍然不適合我 – CloudyMarble

0

我通過改變第一=至IN