我有四个表(在 [] 中是列):
用户 [id]
产品 [id]
productRatings [id,value,user,product]
评论[id,product,user]
我想选择/并最终删除 productRatings,因为同一用户对该产品没有相关评论。也就是说,如果用户对产品进行了评分但未发表评论,则应删除该评分。
我相信我可以通过使用两个查询来实现这一点,首先:
SELECT user, product FROM productRatings
然后对于每一行:
SELECT COUNT(*) FROM comments WHERE product=productRatings.product AND user=productRatings.user
然后是类似的东西
if $queryAbove==0 : DELETE FROM productRatings WHERE id=productRatings.id
我想通过 JOIN 解决这个问题,并通过示例学习更多,而不是深入研究 JOIN 教程。
最佳答案
您只需要 productratings 和 comments 表 - 以下工作:
delete pr
from productratings pr
left join comments c
on pr.userid = c.userid
and pr.productid = c.productid
where c.productid is null
这里有一个演示:http://sqlfiddle.com/#!9/89575/1
关于php - mysql select/delete using join over 四个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799692/