我试图获取以下查询以返回我的两个朋友的结果:
SELECT pid, owner
FROM photo
WHERE aid IN (
SELECT aid
FROM album
WHERE owner in (
SELECT uid2
FROM friend
WHERE uid1=me()
LIMIT 0, 2 ) )
但由于某种原因,它只显示其中一个的结果,并且返回的行数不超过限制(仅约 800)
当我运行时:
SELECT uid2
FROM friend
WHERE uid1=me()
LIMIT 0, 2
正如预期的那样,当我以这种形式手动进行查询时,我得到了两个朋友的结果:
SELECT pid, owner
FROM photo
WHERE aid IN (
SELECT aid
FROM album
WHERE owner = USER_ID_FROM_LAST_QUERY
我得到了两个用户都期望得到的结果,但是为什么它不能与 IN 语句和子查询一起使用?
编辑:我试图实现的是获取我所有朋友的照片。并且仅要求我所有朋友的所有照片将超过 5000 张照片,因此我无法在 1 个查询中获得所有内容。
目前,我通过对每个用户进行查询来获取他的所有图片,从而使其正常工作-并且工作正常。(如果您忽略执行需要 2-3 分钟的事实。所以我想通过减少查询来缩短运行时间。
编辑:更多信息:
通过以下查询,我从两个用户那里获得了专辑:
SELECT aid, owner
FROM album
WHERE owner in (
SELECT uid2
FROM friend
WHERE uid1=me()
LIMIT 0, 2 )
但是通过完整的查询,我只能从其中一位用户拥有的相册中获取图片。