我正在建立一个照片内容网页。为了使所有的内容组合起来,我使用了交叉连接。假设我有以下简单表格:
桌子照片
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 的每个查询大约需要 0.0002 秒(来自 2300 行)。
假设我的表中有 2000 行。可能的组合数量是巨大的。当我的网站上有很多活跃用户时,我会遇到问题吗?