我得到了以下设置:
表:包含ads_id的广告
表格:ads_id与广告相关联的ads_to_categories
表:category_id的类别
表:categories_to_parents,其category_id连接到类别
我想计算一个类别中有多少广告。例如,ads_id 0000000070属于以下类别:categories_id 0000000007
这就是categories_id有多个parent_id,我想通过parent_id 0000000003 知道这个类别中有多少广告 我尝试了很多东西,我得到了参数$ parent_id available和$ categories_id可用,但不知怎的,我得到了其他parent_id的结果。现在我根本没有查询,我感到沮丧并删除了所有内容。
我想知道categories_id 0000000007中有多少广告与parent_id 0000000003。我该怎么做?
例如,我得到了这个:
SELECT count(*)
FROM ads_to_categories as atc, categories_to_parents ctp
WHERE atc.categories_id = '0000000007'
AND atc.categories_id = ctp.categories_id
AND ctp.parent_id = '0000000003'
这给了我1个结果,当我将ctp.parent_id更改为'0000000004'
时,我也得到1个命中,但这应该是0.是否可以使用子查询或其他东西获得正确的查询,或者我应该ads_to_categories
延长parent_id
吗?
答案 0 :(得分:0)
我想通了。我最终得到了这个问题:
SELECT count(a.ads_id) as totalAds
FROM ads as a, ads_to_categories as atc, categories_to_parents ctp
WHERE a.ads_id = atc.ads_id
AND atc.categories_id = :categories_id
AND atc.categories_id = ctp.categories_id
AND (a.ads_status = :ads_status_active OR a.ads_status = :ads_status_reserved)
GROUP BY ctp.parent_id
HAVING ctp.parent_id = :parent_id
问题是,当我更改类别时,parent_id会随我变化,因此始终存在匹配。我最终使用parent_id
扩展了ads_to_categories表