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
我的查询是:
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