Mysql 基于计数和删除的条件SQL联接
我正在尝试查找“wpi9_pc_products”表中所有在“wpi9_term_relationships”表中少于3个条目的行,以便从这两个表中删除它们 在从臀部拍摄之前,我希望使用以下查询确保我正在拖动要删除的正确行: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
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:的确如此。现在,您已经解决了问题中的输入错误,更清楚的是列名是什么。