gpt4 book ai didi

mysql - 在单个查询中通过 ip 查找所有不同的备用用户名

转载 作者:行者123 更新时间:2023-11-29 13:40:57 24 4
gpt4 key购买 nike

我正在尝试构建一个查询,该查询将采用 player_id,查找为该人记录的所有不同 ip 地址,并提取不同的其他 列表>共享每个 IP 的玩家 ID

架构示例:

CREATE TABLE IF NOT EXISTS `ips` (
`ip_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ip` int(10) unsigned NOT NULL,
PRIMARY KEY (`ip_id`)
);


CREATE TABLE IF NOT EXISTS `joins` (
`join_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`player_id` int(10) unsigned NOT NULL,
`ip_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`join_id`)
);

ips 表记录了我看到的每个唯一的 ip,玩家表记录了每个唯一的玩家(对此并不重要),而 joins 表记录了他们每次连接的时间。

使用两个查询来完成此操作是我的第一个想法,它有效且速度很快 - 但我真的很想使用单个查询来完成此操作。我尝试了一个使用子查询的查询,但需要很长时间才能完成。

查询此内容最有效的方法是什么?

最佳答案

这对你来说有什么作用? http://sqlfiddle.com/#!2/133c6/1

SELECT DISTINCT
joins2.player_id,
ips.ip


FROM joins

JOIN ips
ON ips.ip_id = joins.ip_id

JOIN joins AS joins2
ON joins2.ip_id = ips.ip_id
AND joins2.player_id != #player_id


WHERE joins.player_id = #player_id

关于mysql - 在单个查询中通过 ip 查找所有不同的备用用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com