1

投票テーブルからユーザーの名前を取得しようとしていますが、投票者の名前と投票者の名前の両方を取得する方法がわかりません。

簡素化された投票表

ID   voteeID    voterID
1    1          2
2    1          3
3    1          4
4    2          1
5    2          3
6    2          4

簡素化されたユーザー情報テーブル

ID   username
1    Bob
2    Sam
3    Ed
4    Mark

私がいる場所:

SELECT votes.voteeID, votes.voterID, userinfo.username
FROM votes
JOIN ???

私は結合をいじっていましたが、ちょっと立ち往生しています。投票者の ID を userinfo ID に結合する場合、投票者の名前を取得するにはどうすればよいですか、またはその逆ですか?

データベース: MySQL 5

事前に感謝します。

4

4 に答える 4

4

これを試して、

SELECT  b.`username` as Votee_Name,
        c.`username` as Voter_Name
FROM    Votes a
            INNER JOIN UserInfo b
                ON a.voteeID = b.Id
            INNER JOIN UserInfo c
                on a.voterID = c.id

SQLFiddle デモ

于 2012-09-05T07:56:28.393 に答える
3

のようなものはどうですか

SELECT  v.ID,
        v.voteeID,
        u1.username Votee,
        v.voterID,
        u2.username Voter
FROM    Votes v INNER JOIN
        User u1     ON  v.voteeID = u1.ID INNER JOIN
        User u2     ON  v.voterID = u2.ID
于 2012-09-05T07:56:54.150 に答える
2

INNER JOINと の両方のユーザー名を取得するには、2 回実行する必要がありvoteeますvoter

SELECT a.voteeID, a.voterID,
       b.username AS votee_name, c.username AS voter_name
FROM votes a
     INNER JOIN userinfo b
         ON a.voteeID = b.ID
     INNER JOIN userinfo c
         ON a.voterID = c.ID;
于 2012-09-05T07:58:34.800 に答える
1

V.voteeID = B.Id INNER JOIN UserInfo C on V.voterID = C.id;

于 2012-09-05T09:55:52.637 に答える