使用四个表连接的mysql select/delete

dbr*_*dbr 7 php mysql join multiple-tables

我有四个表(在[]列中):

users [id]

products [id]

productRatings [id,value,user,product]

comments [id,product,user]

我想选择/并最终删除productRatings,其中该产品的同一用户没有相关评论.也就是说,如果用户对产品进行了评级但未评论,则应删除该评级.

我相信我可以通过使用两个查询来实现这一点,首先:

SELECT user, product FROM productRatings
Run Code Online (Sandbox Code Playgroud)

然后为每一行:

    SELECT COUNT(*) FROM comments WHERE product=productRatings.product AND user=productRatings.user
Run Code Online (Sandbox Code Playgroud)

然后像

    if $queryAbove==0 : DELETE FROM productRatings WHERE id=productRatings.id
Run Code Online (Sandbox Code Playgroud)

我想通过JOIN解决这个问题,并通过示例了解更多信息,而不是通过JOIN教程.

pal*_*la_ 4

您只需要产品评级和评论表 - 以下内容有效:

delete pr
from productratings pr
left join comments c
  on pr.userid = c.userid
  and pr.productid = c.productid
where c.productid is null
Run Code Online (Sandbox Code Playgroud)

这里有一个演示:http://sqlfiddle.com/#!9/89575/1