Supprimer avec “Rejoindre” dans Oracle sql de la Requête
Je ne suis pas profondément familiariser avec Oracle Sql, Requêtes, donc je fais face à un problème sur la suppression de certaines lignes d'une table qui doit répondre à une contrainte qui comprend des champs de l'autre (joindre) de la table. En d'autres termes, je veux écrire une requête pour supprimer des lignes, y compris le REJOINDRE.
Dans mon cas, j'ai une table ProductFilters
et une autre table Products
rejoint sur les champs ProductFilters.productID = Products.ID
. Je veux supprimer les lignes de ProductFilters
avoir un ID
supérieur ou égal à 200 et le produit qu'ils reportez-vous a le nom de "Marque" (le nom est un champ dans le Produit).
Je tiens à être informé d'abord si la JOINTURE est acceptable dans une Requête de Suppression dans Oracle. Si non, comment dois-je modifier cette Requête afin de le faire fonctionner, car sur le formulaire j'ai un message d'erreur:
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'
);
- oui, vous pouvez le supprimer à l'aide d'une jointure: voir ici stackoverflow.com/a/3675205/110933
Vous devez vous connecter pour publier un commentaire.
Basées sur la réponse que j'ai fait un lien dans mon commentaire ci-dessus, cela devrait fonctionner:
ou
Récemment, j'ai appris de la syntaxe suivante:
Je pense qu'il est beaucoup plus propre, puis d'autres code proposé.
select pf.*
il ne fera que supprimer la productfilters?