0

こんにちは私はUsersというテーブルとfriendsというテーブルを持っています。friendsテーブルにはUserIDとFriendIDの2つのデータ型があります(両方のデータ型の外部キーから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')
4

3 に答える 3

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
于 2012-09-21T11:14:35.157 に答える
0

最初の = を IN に変更して解決しました

于 2012-09-21T11:25:09.220 に答える
-1

これはあなたが達成したいですか?? ユーザー

  1. ユーザー ID (PK)
  2. 名前

友達

  1. フレンド ID (PK)
  2. ユーザー ID (外部キー)

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

于 2012-09-21T11:21:35.937 に答える