it-swarm.com.de

Löschen mit LEFT JOIN

Ich möchte aus einer Tabelle löschen, abhängig von den Daten, die in einer anderen Tabelle vorhanden sind, die auf die erste verweist. Ich habe jedoch den Code, der funktioniert und den zu löschenden Wert anzeigt, wenn ich ihn als SELECT-Kontur ausführen, jedoch, wenn ich das ändern LÖSCHEN gibt mir Fehler, dass ich nicht verstehe, warum sie da sind.

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;

Error: 

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

Ich verwende Postgres

15
Matt

Von wo ich es sehe, brauchst du nicht wirklich einen Join, um das durchzuführen ...

DELETE FROM coursework.leadCustomer 
WHERE leadCustomer.customerID NOT IN (
SELECT distinct customerID FROM coursework.flightBooking  where status IN  ('R','H') 
)
AND leadCustomer.customerID = 8;

es werden alle Datensätze in Leadcustomer mit einer Kundennummer gelöscht, die Folgendes lautet: 1) unterscheidet sich von 8 2) Nicht in der Tabelle Flightbooking mit dem Status 'R' oder 'H'.

Versuchen Sie nicht, das zu tun?

11
Laurent S.

PROBE. DELETE RECORD IN TABLE 'A' IS] IN TABLE 'H' IST KEIN Record

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
46
user3048858

Sie müssen das tun:

Löschen Sie aus TableA Wobei ID in (Wählen Sie eine ID aus tableA a left outer join tableB b auf a.ID = b.ID wobei b.ID NULL ist.)

0
Kyle