我试着获取以下查询以返回我的两个朋友的结果:
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 )
但是通过完整查询,我只能从其中一个用户拥有的相册中获取图片。
答案 0 :(得分:0)
试试这个:
SELECT pid,owner FROM photo WHERE aid IN(SELECT aid FROM album WHERE owner in(SELECT uid2 FROM friend WHERE uid1 = me()LIMIT 2))