0

player_idを取得し、その人について記録されたすべての個別のアドレスを検索し、各 IP を共有するip個別の他の のリストを取得するクエリを作成しようとしています。player_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 を記録し、players テーブルは各一意のプレーヤー (これには重要ではありません) を記録し、joins テーブルは接続するたびに記録します。

2 つのクエリでこれを行うのが私の最初のアイデアでした。これは機能し、高速です。ただし、1 つのクエリでこれを機能させたいと思っています。サブクエリを使用するクエリを試しましたが、完了するまでに時間がかかります。

これを照会する最も効率的な方法は何ですか?

4

1 に答える 1