写真コンテンツのウェブページを構築しています。コンテンツのすべての組み合わせを作成するために、クロス ジョインを使用します。次の単純なテーブルがあるとします。
テーブル写真
id filename
------------
1 a.jpg
2 b.jpg
3 c.jpg
4 d.jpg
5 e.jpg
テーブルから作ることができる組み合わせの数は 10 で、それらは
1,2
1,3
1,4
1,5
2,3
2,4
2,5
3,4
3,5
4,5
次のクロス結合クエリを使用して上記の結果を取得します
SELECT cp1.id,
cp2.id
from photos as cp1
cross join photos as cp2
where cp1.id < cp2.id
...そして、次のクエリを使用して、ユーザーが見ていない課題を表示します。
SELECT cp1.id,
cp1.filename,
cp2.id,
cp2.filename
from challenge_photos as cp1
cross join challenge_photos as cp2
where cp1.id < cp2.id
and (cp1.id,cp2.id) not in ( (x1,x2), (x1,x2) )
and cp1.id = something
and cp2.img_id != something
これまでのところ、これらのクエリは問題なく機能しています。各クエリは、phpmyadmin から (2300 行から) 約 0.0002 秒かかります。
テーブルに 2000 行あるとします。可能な組み合わせの数は膨大です。Web サイトに多くのアクティブ ユーザーがいる場合、問題が発生する可能性はありますか?