我有这个查询。它从rena表中选择所有数据并计算gallery表中的行,然后从rena表中收集Files> 0的记录。但查询不起作用,我不知道什么是错的以及如何解决它。
SELECT fol.*,
(SELECT COUNT(*) FROM gallery fil
WHERE fil.ren_id = fol.id) AS "Files"
FROM rena fol where Files>0
答案 0 :(得分:0)
我不知道它对MySQL如何有效,但对于Oracle,我会做类似
的事情SELECT fol.*, (SELECT count(*) FROM gallery fil
WHERE fil.ren_id = fol.id) AS "Files"
WHERE EXISTS (SELECT 1 FROM gallery fil
WHERE fil.ren_id = fol.id);
因为您只需要至少一个文件来匹配> 0一旦db找到与fil.ren_id = fol.id匹配的行,你应该得到正确的结果。
答案 1 :(得分:0)
试试这个。 嵌套查询计数然后与rena连接
SELECT fol.*,cnt FROM rena fol join
(
select ren_id,count(*) cnt from gallery fil group by ren_id
) as aaa
on fol.id=aaa.ren_id