Mysql在哪里算

时间:2013-10-29 08:25:47

标签: count where

我有这个查询。它从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

2 个答案:

答案 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