Je veux supprimer d'une table en fonction des données qui existent sur une autre table qui référence la première. Cependant, j'ai le code qui fonctionne et affiche la valeur à supprimer lorsque je l'exécute comme un élément SELECT DELETE cela me donne des erreurs, que je ne comprends pas pourquoi elles sont là.
DELETE leadCustomer.* FROM coursework.leadCustomer LEFT JOIN coursework.flightBooking
ON leadCustomer.customerID = flightBooking.customerID
WHERE leadCustomer.customerID NOT IN (
SELECT customerID FROM (SELECT customerID, status FROM coursework.flightBooking) AS
StatusCount where status IN ('R','H') GROUP BY customerID
)
AND leadCustomer.customerID = 8;
Erreur:
ERROR: syntax error at or near "leadCustomer"
LINE 1: DELETE leadCustomer.* FROM coursework.leadCustomer LEFT JOIN...
^
********** Error **********
ERROR: syntax error at or near "leadCustomer"
SQL state: 42601
Character: 8
J'utilise postgres
De là où je le vois, vous n'avez pas réellement besoin d'une jointure pour effectuer ceci ...
DELETE FROM coursework.leadCustomer
WHERE leadCustomer.customerID NOT IN (
SELECT distinct customerID FROM coursework.flightBooking where status IN ('R','H')
)
AND leadCustomer.customerID = 8;
il supprimera tous les enregistrements dans le client principal avec un ID client qui est: 1) différent de 8 2) Pas dans le tableau flightbooking avec le statut 'R' ou 'H'
N'est-ce pas ce que vous essayez de faire?
ÉCHANTILLON. SUPPRIMER ENREGISTREMENT DANS LA TABLE 'A' IS IL N'Y A PAS D'ENREGISTREMENT DANS LA TABLE 'H'
DELETE A FROM ARTICULO_ALMACEN A
LEFT JOIN HISTORICO_UNION H
ON A.COD_ARTICULO = H.COD_ARTICULO
AND A.COD_ALMACEN = H.COD_ARTICULO_ALMACEN
AND A.TPROPIEDAD1 = H.PROPIEDAD1
AND A.TPROPIEDAD2 = H.PROPIEDAD2
AND A.TPROPIEDAD3 = H.PROPIEDAD3
WHERE H.COD_ARTICULO IS NULL
Vous devrez faire ceci:
Supprimer de la TableA Où ID dans (sélectionnez l'ID de la tableA a gauche jointure externe tableB b sur a.ID = b.ID où b.ID est NULL)