spacewarp回答ポイント 200ptウォッチ

SQL(重複チェック)についての質問


以下のようなテーブルがあるとき、

人間テーブル
1,桃太郎
2,金太郎
3,浦島太郎
4,かぐや姫
5,おじいさん
...

動物テーブル
1,猿
2,亀
3,ウサギ
4,カニ
5,犬
....
....

対戦テーブル(実際は名前ではなく、人間IDと動物IDが入っています)
1,かぐや姫,猿
2,金太郎,犬
3,浦島太郎,カニ
4,金太郎,熊
....
....

人間テーブルに50000人
動物テーブルに10000匹
対戦テーブルが1000000対戦の組み合わせ
があるとき、

人間テーブルから任意に5000人
動物テーブルから任意に30匹を抽出します。
単純にこの全組み合わせの対戦テーブルを作ろうとすると
5000x30 = 150000対戦ができると思いますが、
すでに対戦したことある組み合わせは除きたいです。

1.初顔合わせの対戦の組み合わせ数、
2.初顔合わせの対戦の組み合わせリスト

それぞれ取得したいのですが、
総当たりでループさせながら150000対戦分を対戦テーブルと
重複チェックを行うと150000回クエリーを実行するので、かなり重くなります。

こうしたパフォーマンスを考慮した上で上記の1,2を取得する、
できれば1回のクエリーで取れるような方法はあるでしょうか。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2015-09-08 10:44:12
終了日時
2015-09-09 11:26:40
回答条件
1人1回まで

この質問のカテゴリ

この質問に含まれるキーワード

SQL1319重複チェック13かぐや姫13クエリ503金太郎15桃太郎49ウサギ75

人気の質問

メニュー

PC版