2013-02-17 16 views
2

用户表:MySQL的:获取两行作为一个

id | win | lose 
0 | 1 | 2 
1 | 2 | 8 

游戏表:

id | user1 | user2 | data 
0 | 0  | 1  | 'some text' 

的DB是一个简单的多人游戏。我需要一个查询来获得用户2,数据,和双赢的数据为用户。这在MySQL中可能吗?任何帮助将不胜感激。

回答

4

你必须JOINusers两次这样的:

SELECT 
    u1.win AS win1, 
    u1.lose AS lose1, 
    u2.win AS win2, 
    u2.lose AS lose2, 
    ... 
FROM games g 
INNER JOIN users u1 ON g.user1 = u1.id 
INNER JOIN users u2 ON g.user2 = u2.id 
+0

感谢,don'really知道怎么回事,但它的工作那谢谢啦! – 2013-02-17 12:24:31

1

你可以加入users表两次:

SELECT 
    games.user2 AS user2_id 
    games.data AS games_data 
    user1.win AS user1_win, 
    user1.lose AS user1_lose, 
    user2.win AS user2_win, 
    user2.lose AS user2_lose 
FROM games 
JOIN users AS user1 ON user1.id = games.user1 
JOIN users AS user2 ON user2.id = games.user2 
WHERE games.id = ... 
+0

好的,我应该更频繁地刷新,这与马哈茂德贾马尔的 – 2013-02-17 11:48:03

+1

相同的答案,但我很感激它! – 2013-02-17 12:25:09

+0

谢谢,我通过大写所有'AS'关键字来打磨它:-) – 2013-02-17 12:28:47