35

最初のテーブルを参照する別のテーブルに存在するデータに応じてテーブルから削除したいのですが、SELECTステアメントとして実行すると削除される値が表示され、機能するコードがあります。 DELETEするとエラーが発生し、なぜそこにあるのかわかりません。

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:  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

私はpostgresを使用しています

4

5 に答える 5

81

サンプル。テーブル'A'のレコードを削除しますテーブル'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
于 2014-11-25T12:22:53.187 に答える
21

私が見たところから、これを実行するために実際に参加する必要はありません...

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

1)8とは異なるcustomerIDを持つleadcustomerのすべてのレコードが削除されます。2)ステータスが「R」または「H」のテーブルフライトブッキングにはありません。

それはあなたがやろうとしていることではありませんか?

于 2013-03-20T11:22:20.313 に答える
1

これを行う必要があります:

TableAからIDを削除します(tableAからIDを選択します。a.ID=b.IDの左外部結合テーブルBb。b.IDはNULLです)

于 2014-02-13T22:22:44.887 に答える
-4

ie.*から削除:leadCustomer.*

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;
于 2013-03-20T11:22:10.157 に答える
-4

あなたはこれを試すことができます

 DELETE leadCustomer FROM coursework.leadCustomer lc
 LEFT JOIN coursework.flightBooking fb ON lc.customerID = fb.customerID 
 and status IN  ('R','H')and fb.customer_id is not null
 WHERE  leadCustomer.customerID = 8;
于 2013-03-20T11:35:20.183 に答える