Mysql 基于计数和删除的条件SQL联接

Mysql 基于计数和删除的条件SQL联接,mysql,sql,count,inner-join,sql-delete,Mysql,Sql,Count,Inner Join,Sql Delete,我正在尝试查找“wpi9_pc_products”表中所有在“wpi9_term_relationships”表中少于3个条目的行,以便从这两个表中删除它们 在从臀部拍摄之前,我希望使用以下查询确保我正在拖动要删除的正确行: SELECT * FROM `wpi9_pc_products` INNER JOIN wpi9_term_relationships ON wpi9_pc_products.id_product=wpi9_term_relationships.object_id GRO

我正在尝试查找“wpi9_pc_products”表中所有在“wpi9_term_relationships”表中少于3个条目的行,以便从这两个表中删除它们

在从臀部拍摄之前,我希望使用以下查询确保我正在拖动要删除的正确行:

SELECT * FROM `wpi9_pc_products` INNER JOIN wpi9_term_relationships ON 
wpi9_pc_products.id_product=wpi9_term_relationships.object_id GROUP BY 
wpi9_term_relationships.object_id HAVING COUNT(*) < 3
但是,我一直在这里试图找出基于计数有条件地连接两个表的正确方法


我的SQL非常,非常生锈,因此任何帮助都将不胜感激

如果我没有弄错,则产品和关系表之间存在父/子关系。我建议在引用父表的子表上设置外键约束,如下所示:

alter table wpi9_term_relationships
    add constraint fk_product_id
    foreign key (object_id)
    references wpi9_pc_products(id_product)
    on delete cascade;
然后,您可以简单地从父表中删除记录;on delete cascade子句可确保自动删除子记录:

delete p
from wpi9_pc_products p
where (select count(*) from wpi9_term_relationships r where r.object_id = p.id_product) < 3

谢谢你的建议。初始查询不应该说引用了wpi9\u pc\u productsid吗_product@FarhadD:的确如此。现在,您已经解决了问题中的输入错误,更清楚的是列名是什么。