0

これは player1name では問題なく動作しますが、player2name を解決するにはどうすればよいですか?

作業中ですが、便利なビジュアル クエリ ビルダーをご存知でしたら教えてください ;)


SELECT 
_game.player1,
_user.username AS player1name,
_game.player2,
_user.username AS player2name,
FROM _game
LEFT JOIN _user ON _game.player1 = _user.id

4

4 に答える 4

1
SELECT player1,
_user.username AS player1name,
 player2,
_user2.username AS player2name
FROM _game
LEFT JOIN _user ON (_headsup.player1 = _user.id)
LEFT JOIN _user _user2 ON (_headsup.player2 = _user2.id)
于 2012-05-31T22:53:15.953 に答える
1

ATM を実行している mySQL はありませんが、次のようになるはずです...

SELECT 
player1,
u1.username AS player1name,
 player2,
u2.username AS player2name,
FROM _game
INNER JOIN _user u1 ON _headsup.player1 = u1.id
INNER JOIN _user u2 ON _headsup.player2 = u2.id

つまり、結合でエイリアスを使用し、選択でエイリアスを使用します。

しかし、_headsup がどこから来たのか途方に暮れています。

于 2012-05-31T22:54:18.377 に答える
1
SELECT 
   player1,
   usr1.username AS player1name,
   player2,
   usr2.username AS player2name,
FROM _game
LEFT JOIN _user usr1 ON usr1.id= _game.player1
LEFT JOIN _user usr2 ON usr2.id= _game.player2
于 2012-05-31T22:57:27.820 に答える
0

_gameONに結合する場合、これら 2 つのテーブルの_userどのフィールドで結合するかを指定する必要があると思います。その結合を指定しますが、次に結合しようとします。 _headsup_user

player1とが何であるかはわかりませんplayer2が、それらがどのテーブルからのものであるかを言わなかったため、あいまいなフィールドとして表示される可能性があります。

最初に参加してから、on で 2 番目の参加を_game行います_user_user_headsup

FROM _game
LEFT JOIN _user ON _game.someField = _user.someField
JOIN _headsup ON _user.id = _headsup.player1
于 2012-05-31T22:56:19.197 に答える