Löschen Sie mit "Join" in Oracle SQL-Abfrage
Ich bin nicht sehr vertraut mit Oracle, Sql-Abfragen, deshalb habe ich vor einem problem auf das löschen einiger Zeilen aus einer Tabelle, die erfüllt werden müssen, eine Einschränkung, die beinhaltet die Felder der anderen (joining) - Tabelle. In anderen Worten möchte ich eine Abfrage schreiben, löschen von Zeilen, einschließlich ANSCHLIEßEN.
In meinem Fall habe ich eine Tabelle ProductFilters
und eine weitere Tabelle Products
trat auf den Feldern ProductFilters.productID = Products.ID
. Ich will zum löschen der Zeilen aus ProductFilters
mit einem ID
gleich oder größer als 200 und das Produkt Sie sich beziehen, hat den Namen 'Mark' (der name ist ein Feld in dem Produkt).
Ich möchte informiert werden, anfangs wenn die VERKNÜPFUNG ist akzeptabel in einer Delete-Abfrage in Oracle. Wenn nicht, wie sollte ich diese Abfrage ändern, um zu machen es funktioniert, da auf dem Formular erhalte ich eine Fehlermeldung:
DELETE From PRODUCTFILTERS pf
where pf.id>=200
And pf.rowid in
(
Select rowid from PRODUCTFILTERS
inner join PRODUCTS on PRODUCTFILTERS.PRODUCTID = PRODUCTS.ID
And PRODUCTS.NAME= 'Mark'
);
InformationsquelleAutor der Frage arjacsoh | 2012-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf der Antwort, die ich verlinkt in meinem Kommentar oben, dieser sollte funktionieren:
oder
InformationsquelleAutor der Antwort davek
Kürzlich erfuhr ich die folgende syntax:
Ich denke, es sieht viel sauberer aus, dann den anderen vorgeschlagenen code.
InformationsquelleAutor der Antwort xlogic