Comment puis-je créer un SQL DELETE pour supprimer des lignes dans une 3e table?
C'est la structure de ma base de données SQLite:
Je suis en train de supprimer TOUS les OrderData qui appartient à une sélection OrderInfo.Cust_ID qui appartient à un particulier CustData.Cust_ID. C'est mon instruction DELETE, qui me donne l'erreur: "aucune colonne de ce type: CustData.Customer_ID"
DELETE FROM OrderData
WHERE CustData.Customer_ID = OrderInfo.Cust_ID
AND OrderData.Order_ID = OrderInfo.Order_ID
AND CustData.Bus_Name = 'Albertsons'
Je sais que SQLite ne supporte PAS les Jointures dans une instruction DELETE, donc je suis à gauche avec le lieu et la Padn; quelqu'un peut-il me dire la façon correcte de ce mot?
Vous pourriez essayer une sous-requête avec une clause IN.
OriginalL'auteur SpokaneDude | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer une sous-requête avec une clause IN. Quelque chose comme:
pour tester la requête avant de supprimer viens de le faire: (renvoie toutes les lignes qui serait supprimé par la requête de suppression)
J'ai mis à jour la réponse. Je pense que c'est en fait assez similaire à ce que davids posté... j'ai aussi ajouté une requête de test à utiliser avant la réelle supprime. Il devrait fonctionner parce que la SUPPRESSION n'est pas réellement en mesure d'effectuer une JOINTURE. La JOINTURE est isolé dans la sous-requête qui renvoie tous les noms dans la DANS la clause de la requête de niveau supérieur.
Oups. Eu un problème dans les requêtes. Modifié la réponse. Merci d'essayer de nouveau.
C'est apparemment... mais je n'ai rien dans le OrderData table... merci pour votre aide... je vais mais certaines données dans le tableau et de voir où cela va... 😀 SÉLECTIONNEZ * à PARTIR de OrderData OÙ OrderData.Order_ID DANS (SÉLECTIONNEZ OrderInfo.Order_ID DE OrderInfo REJOINDRE CustData sur OrderData.Order_ID = OrderInfo.Order_ID OÙ CustData.Bus_Name = 'Prager Logiciel')
Une autre oops. Essayez de nouveau.
OriginalL'auteur Paul Sasik
Vous ne pouvez pas.
mais vous pouvez utiliser
triggers
par exempleVérifier cette il va vous aider.
Si vous avez v 3.6.19, il a déjà le soutien étranger contraintes SUR
UPDATE
ouDELETE CASCADE
Lire SQLite Support Des Clés Étrangères
EDIT:
OU comme l'écrit @Paul Sasik
OriginalL'auteur Simon Dorociak
essayer
Je ne suis pas familier avec SQLite, mais la jointure est sur une sous-requête, n'est-ce pas faire une différence?
Mon commentaire est essentiellement la même que @Paul Sasik, juste avec vos colonnes et des tables.
OriginalL'auteur davids