Avatar billede conrad Nybegynder
23. februar 2006 - 10:28 Der er 6 kommentarer og
1 løsning

Kompleks UPDATE statement

Jeg har Følgende relation
Tabel A har en 1-1 relation til B.
Table B har en 1-* relation til table C

Jeg ønsker at opdatere et felt i A med værdien fra et felt i den første C record som opfylder relationen A->B->C. Er der nogen hajer som kan hjælpe mig med det statement ?
Avatar billede dr_chaos Nybegynder
23. februar 2006 - 10:58 #1
UPDATE TABEL_A SET Felt=(SELECT TOP 1 FELT FROM TABEL_A TA INNER JOIN TABEL_B TB ON TB.IDFELT = TA.IDFELT INNER JOIN TABEL_C TC ON TC.IDEFELT =TB.IDFELT) WHERE ETFELT = ENVAERDI
Avatar billede dr_chaos Nybegynder
23. februar 2006 - 11:04 #2
i top 1 statement kan du sætte en order by på id feltet i tabel c
Avatar billede conrad Nybegynder
23. februar 2006 - 11:10 #3
Er order by bare for performance ?
Avatar billede conrad Nybegynder
23. februar 2006 - 11:20 #4
Jeg synes ikke jeg får kopieret det forventede. Kan du forklare

SELECT TOP 1 FELT FROM TABEL_A ? Hvordan bliver FELT sat i de efterfølgende statements ?
Avatar billede dr_chaos Nybegynder
23. februar 2006 - 11:32 #5
order by er bare for hvis du i tabel c har et id  felt. så kan du lave order by med det.
du har jo et felt i tabel a og tabel b som er forbundet med en relation.
det er det du skal bruge i TB.IDFELT = TA.IDFELT
det samme gælder mellem tabel b og c i
TC.IDEFELT =TB.IDFELT.
I
SELECT TOP 1 FELT FROM
erstatter du FELT med det felt du vil hente fra tabel c
Avatar billede conrad Nybegynder
23. februar 2006 - 19:17 #6
super - tusind tak for hjælpen. Lægger du et svar
Avatar billede dr_chaos Nybegynder
23. februar 2006 - 19:38 #7
svar :)
det er også den rigtige måde at gøre det på netop fordi man benytter relationerne :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester