"Neo" <someone@somedomain.invalid> skrev i en meddelelse
news:44ccb7e1$0$14029$edfadb0f@dread15.news.tele.dk...
> Hejsa alle
>
> jeg har 2 tabeller i en access database, Tabel1 og Tabel2
>
> i Tabel1 har jeg følgende felter
>
> BrugerID
> Navn
> Adresse
>
> I Tabel2 har jeg bl.a. følgende felter
>
> BrugerID
> Navn
> Adresse
>
> Alle Navne og adresser samt BrugerID er indtastet i Tabel1
>
> Kun BrugerID er indtastet i Tabel2
>
> Hvordan skal en sql forespørgsel se ud for at opdatere tabel2 med data fra
> tabel1, med brugerID rom reference ?
>
> Jeg benytter VB6
>
> Håber på lidt hjælp, på forhånd tak
>
> Mvh Neo
>
>
>
Det kommer an på, hvilken database du benytter. MySQL tillader f.eks. denne
her:
UPDATE tabel1, tabel2 SET tabel2.navn=tabel1.navn,
tabel2.adresse=tabel1.adresse WHERE tabel1.id=tabel2.id
men det er langt fra alle databaser der tillader sådan en syntax (som jo
ligner den man ville bruge i en SELECT). Den er vist ikke helt i
overensstemmelse med de officielle SQL standarder
Nogle gange er man nødt til at bruge en syntax som denne:
UPDATE tabel2
SET navn = (SELECT navn FROM tabel1 WHERE id=tabel2.id),
adresse = (SELECT adresse FROM tabel1 WHERE id=tabel2.id)
WHERE EXISTS (SELECT * FROM tabel1 WHERE id=tabel2.id)
Where delen er måske ikke nødvendig. Den sikrer bare, at man ikke forsøger
at opdatere rækker, som ikke findes i tabel1. Hvis du er helt sikker på, at
der ikke eksisterer "nye" id i tabel2, er den ikke nødvendig.