2016-05-24 109 views
1

我的查询是:SQL DELETE LEFT JOIN查询

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 

这个查询删除用户的个人资料,在PICS表中的所有图片和所有在食台上匹配简档。 这会使我 ID 47,48在档案表 ID 66,67在照片管理表 ID 30,31,32,34食品表

但我希望它也是在删除所有行的照片管理.ID ProfileID是46,因此Pics.ID 64和65.这两个ID将从Food表中删除。这将是Food.ID 30和32,从而只剩下: ID 31,在食品表34

资料表:

ID Gender 
46 male 
47 female 
48 female 

照片管理表:

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

食品表:

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

你的问题很混乱,你能不能改说一下 – Haris

+0

为什么不单单把'delete'语句分开?你是否需要一次做这些事情? – sagi

回答

3

我觉得这是你想要的

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