0

私はテーブルを持っていますusers

id, ip, opponent
1, 123.123.123, 2
2, 123.123.123, 1
3, 123.123.123, NULL

重複のない ips とのリストを表示するクエリが必要です。

ip_first_opponent, ip_second_opponent

どうすればいいですか、私はSQLの初心者です。

4

1 に答える 1

0

ID x のユーザーの対戦相手のすべての IP を取得する場合は、次のようにします。

SELECT DISTINCT(opponents.id) FROM users AS me、ユーザー AS 対戦相手 WHERE me.id=x and me.opponentId=opponents.id

(したがって、対戦相手の ID が対戦相手の ID と同じであり、DISTINCT が異なる IP のみを出力するという制約を使用して、テーブル users をそれ自体に結合します。)

編集: ユーザーとその対戦相手の IP を選択したいので、クエリは次のようになります。

SELECT DISTINCT me.ip、反対者.ip FROM ユーザー AS 私、ユーザー AS 反対者 WHERE me.opponentId=opponents.id

于 2013-08-25T21:14:50.020 に答える