verwijderquery met voorwaarde in veld uit andere tabel

Status
Niet open voor verdere reacties.

rebirth

Gebruiker
Lid geworden
17 jun 2008
Berichten
170
Ik zou graag een verwijderquery maken voor een tabel met 4 velden, waarbij de voorwaarde van de te verwijderen records te vinden is in een gerelateerde tabel. Wanneer ik de query probeer uit te voeren, krijg ik de melding "U moet de tabel opgeven waaruit u de records wil verwijderen". Wel logisch, denk ik zo, want er zijn natuurlijk 2 tabellen in de query, de tabel waaruit ik de gegevens wil verwijderen, en de tabel waarin de voorwaarde vervat zit. Alleen, hoe kan ik dit oplossen, zodat het me wel lukt. Of is dit gewoon onmogelijk?
 
Laat eerst de query eens zien :)
 
DELETE opvtmp.Kind, opvtmp.Datum, opvtmp.Beginuur, opvtmp.Einduur, Kind.Groep
FROM Kind RIGHT JOIN opvtmp ON Kind.KindID = opvtmp.Kind
WHERE (((Kind.Groep)=2));
 
Dit is geen jofele verwijderquery. En dan zeg ik het zachtjes :) Normaal gesproken kun je geen specifieke velden verwijderen uit een tabel, dus als je een record verwijdert, gaan alle velden van dat record er uit. Daarnaast kun je maar in 1 tabel tegelijk verwijderen, en jij probeert in 2 tabellen een record weg te gooien. Dat kan dus al helemaal niet.

Code:
DELETE * FROM opvtmp WHERE ( (Kind.KindID = opvtmp.Kind) AND (Kind.Groep=2));
zou misschien nog wel kunnen werken.
Maar waarom zou je Kind.Groep weg willen doen? Dat is (nog een reden dat het waarschijnlijk niet gaat werken) ook nog eens het veld waarop je filtert.
 
Wel, dat is het em net, en daar zat meteen ook mijn probleem. Ik wild die Kind.Groep niet wegdoen, maar dat is inderdaad het veld waarop ik filter. Alleen had ik geen idee hoe het anders aan te pakken. Maar ik ga meteen even jou tip gaan volgen, en daarmee aan de slag. Bedankt!
 
De regel DELETE opvtmp.Kind, opvtmp.Datum, opvtmp.Beginuur, opvtmp.Einduur, Kind.Groep probeert wel degelijk het veld [Groep] uit de tabel [Kind] te verwijderen :)
 
ja, inderdaad, daar heb je wel gelijk, als ik die wegliet, kreeg ik weer andere problemen.
En ook nu lijkt hij nog niet meteen te werken, ik krijg telkens de invulkadertjes om parameterwaarde in te geven voor kind.KindID en kind.Groep. Zet ik de tabel Kind er bij, dan is hij gans naar de knoppen :confused:
 
Ik heb je verwijderquery even nagemaakt in één van je db's, en daar werkt hij prima:
Code:
DELETE opvtmp.*, Kind.Groep
FROM opvtmp INNER JOIN Kind ON opvtmp.Kind = Kind.KindID
WHERE ((Kind.Groep=2));
Bijna hetzelfde dus, met dit verschil dat ik de tabel opvtmp gebruik om uit te wissen, en niet Kind.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan