我有一个表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的新手。
如果您想获得id为x的用户的所有对手的ip,您可以执行以下操作:
从作为我的用户和作为对手的用户中选择区别(对手.id)其中我.id=x和我.opponentId=opponts.id
(因此,您将表用户连接到自身,并约束对方id与对方id相同,DISTINCT只输出不同的ips。)
编辑:由于您想要选择用户及其对手的ip,因此查询变为:
从作为我的用户、作为我所在地的对手的用户中选择DISTINCT me.ip、opponts.ip。opponentId=opponts_id