Ik zit met een vraagstuk waarbij ik in 1 tabel records moet verwijderen, terwijl er in een andere tabel records aangepast moeten worden en er een derde tabel bij betrokken is. Ik zal de tabellen met velden even benoemen, zodat e.e.a. duidelijker wordt:
de volgende relaties zijn van toepassing:
inlist.badge=badge.badge
inlist.facility=badge.facility
inlist.reader=reader.description
nu is het de bedoeling dat er records uit de inlist verwijderd worden die een reader hebben die niet in de tabel reader staan. tevens moeten de (bijbehorende) records uit de tabel badge bijgewerkt worden. Ik wil dit in 1 query stoppen, maar ik kom er niet uit. Dit is wat ik aan queries heb:
alles in een try/catch block. Mijn vraag is eigenlijk of dit niet eenvoudiger kan, of dat ik deze drie stappen moet gebruiken.
inlist |
name |
badge |
reader |
facility |
reader |
pnlref |
rdrno |
description |
badge |
enabled |
lastname |
firstname |
badge |
facility |
remarks |
lvdate |
lvrdr |
de volgende relaties zijn van toepassing:
inlist.badge=badge.badge
inlist.facility=badge.facility
inlist.reader=reader.description
nu is het de bedoeling dat er records uit de inlist verwijderd worden die een reader hebben die niet in de tabel reader staan. tevens moeten de (bijbehorende) records uit de tabel badge bijgewerkt worden. Ik wil dit in 1 query stoppen, maar ik kom er niet uit. Dit is wat ik aan queries heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| update inlist set name="drop me" where reader not in (select description from reader) go update badge set enabled=0 where badge.badge=inlist.badge and badge.facility=inlist.facility go; delete from inlist where name=" drop me" |
alles in een try/catch block. Mijn vraag is eigenlijk of dit niet eenvoudiger kan, of dat ik deze drie stappen moet gebruiken.
[ Voor 59% gewijzigd door pkouwer op 21-01-2009 20:34 ]