2011-08-19 41 views
2

请帮忙。在两个mysql表上填充数据时遇到问题

我有两个表。

SUBCAT

ID,USER_ID,subcat_id,标题,说明,价格,best_offer, 图像,拉链,premium_listing,状态,date_create,d DATE_MODIFIED

aditem

ID,USER_ID,subcat_id,标题,DESCRIPTIO,正极地研究中心,电子best_offer 图像,拉链,premium_listing,状态,DATE_CREATED,DATE_MODIFIED

我想列出SUBCAT所有类别和计数数量的已张贴到aditem,涉及到的ID在SUBCAT广告项目

所以结果可能看起来像这样

汽车 - 7

报废汽车-9

服装 - 10

自行车 - 0

我已经试过LEFT JOIN,但没有奏效。有没有办法做到这一点?联盟会工作吗?

这里是什么,我想完成一个例子:http://www.ksl.com/index.php?nid=13

这是我曾尝试

SELECT subcat.id, subcat.cat_id, subcat.subcat, subcat.description AS subdesc, COUNT(aditem.subcat_id) AS itemc 
    FROM subcat 
LEFT JOIN aditem 
     ON aditem.subcat_id = subcat.id 

万分感谢 认真

+0

当你说“它没有工作” - 发生了什么?看起来你错过了一个group by子句,对我来说。 – Aerik

回答

0

您需要在COUNT(*)语句中使用回覆。类似于

SELECT subcat.title, COUNT(aditem.id) AS count FROM subcat LEFT JOIN aditem ON subcat_id = subcat.id 

您可能需要在最后;不知道,现在不能测试:

GROUP BY aditem.id 
0

尝试使用

SELECT subcat.id, subcat.cat_id, subcat.subcat, subcat.description AS subdesc, COUNT(aditem.id) AS itemc FROM subcat LEFT JOIN aditem ON aditem.subcat_id = subcat.id 
GROUP BY subcat.cat_id 
+0

这里没有工作是更新的 – earnest

+0

您可以使用Order BY column_name子句。你能提供这种排序的例子吗? –

+0

尝试使用GROUP BY aditem.cat_id –