我在Mysql中有2个表
表1:项目(itemNO,类型,名称)
表2:备注(itemNO,内容)
我用while来查看项目数据
NSString * version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];
NSString * build = [[NSBundle mainBundle] objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];
我想显示在两个表中共享相同itemNO的项目的备注计数
我试图创建新的查询,同时计算项目的备注,但失败。
我应该怎样做以显示其中的评论数量?
答案 0 :(得分:1)
这可以在1个查询中完成:
SELECT item.itemNO, item.type, item.name,
COUNT(*) AS totalRemarks
FROM item
LEFT JOIN remark ON remark.itemNO = item.itemNO
GROUP BY item.itemNO, item.type, item.name
ORDER BY RAND()
LIMIT 5
左连接,因为您可能希望看到没有备注的项目
我注意到一个缺陷:如果没有评论,它仍然会提到“1”
这种改变可以解决它:
SELECT item.itemNO, item.type, item.name,
COUNT(remark.itemNO) AS totalRemarks
FROM item
LEFT JOIN remark ON remark.itemNO = item.itemNO
GROUP BY item.itemNO, item.type, item.name
ORDER BY RAND()
LIMIT 5
答案 1 :(得分:0)
使用join来实现此目的。试试这个查询
$sql="SELECT count(itemNO) as totalItem FROM item i inner join remark r on r.itemNO = i.itemNO";
答案 2 :(得分:0)
你应该使用 INNER JOIN
operator*
答案 3 :(得分:0)
无需多次查询。简单使用JOIN and GROUP BY CLAUSE
select i.* ,r.*,count(r.itemNO) as remark_count
from item as i
left join remark as r
on (i.itemNO=r.itemNO)
WHERE i.itemNO='$No'
group by i.itemNO