SQL 删除左连接查询

SQL DELETE LEFT JOIN query

我的查询是:

DELETE p,p2,r 
FROM Profiles p
LEFT JOIN Pics p2 ON p.ID=p2.ProfileID
LEFT JOIN Food f ON p.ID=f.ProfileID
WHERE p.ID = 46

此查询删除用户的个人资料、图片 table 中的所有图片以及食物 table 中所有匹配的 ProfileID。 哪个会离开我 配置文件中的 ID 47,48 table 图片中的 ID 66,67 table 食物中的 ID 30,31,32,34 table

但我希望它也删除 Pics.ID ProfileID 为 46 的所有行,因此 Pics.ID 64 和 65。这两个 ID 将从 Food table 中删除.这将是 Food.ID 30 和 32 所以只剩下: 食物中的 ID 31、34 table

个人资料Table:

ID Gender
46 male
47 female
48 female

图片 Table:

ID ProfileID Position
64 46        1 
65 46        2
66 47        1
67 48        1

食物Table:

ID PicID ProfileID
30 64    47
31 66    48
32 65    47
33 67    46
34 67    47

我想这就是你想要的

DELETE p,p2,f,f2 
FROM Profiles p
LEFT JOIN Pics p2 ON p.ID=p2.ProfileID
LEFT JOIN Food f ON p.ID=f.ProfileID
LEFT JOIN Food f2 ON p2.ID=f2.PicID
WHERE p.ID = 46