2016-05-24 10 views
1

Meine Abfrage JOIN ist:SQL DELETE LEFT Abfrage

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 

Diese Abfrage löscht das Profil des Benutzers, alle Bilder in der Bilder-Tabelle und alle Profileiden in Lebensmittel-Tabelle entsprechen. Welche verlassen würde mich ID 47,48 in Profiltabelle ID 66,67 in Pics Tabelle ID 30,31,32,34 in Nahrungsmitteltabelle

Aber ich will es auch die Zeilen alle Bilder, wo löschen .ID ProfileID ist 46, also Pics.ID 64 und 65. Diese beiden IDs werden aus der Tabelle Food gelöscht. welche wäre Food.ID 30 und 32 so nach links mit nur: ID 31, 34 in Nahrungsmitteltabelle

Profiltabelle:

ID Gender 
46 male 
47 female 
48 female 

Pics Tabelle:

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

Lebensmittel Table:

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

Ihre Frage ist verwirrend, können Sie sie umformulieren – Haris

+0

Warum nicht einfach 'delete' Anweisungen trennen? Müssen Sie sie sofort machen? – sagi

Antwort

3

Ich denke, das ist, was Sie wollen

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