/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MSSQL : update
Fra : Kasper Kamp Simonsen


Dato : 10-03-03 14:15

Hej NG

Håber i kan hjælpe med en update sætninge.

Jeg har to tabeller som ser sådan her ud.

Tabel1
id nummer text

Tabel2
id nummer text

Nu kunne jeg godt tænke mig at update Tabel1 så tabel1.text blev lig med
tabel2.text hvor tabel1.nummer er lig med tabel2.nummer

Håber i kan hjælpe

/Kasper



 
 
Jens Gyldenkærne Cla~ (10-03-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 10-03-03 14:28

Kasper Kamp Simonsen skrev:

> Nu kunne jeg godt tænke mig at update Tabel1 så tabel1.text
> blev lig med tabel2.text hvor tabel1.nummer er lig med
> tabel2.nummer

Frit fra hukommelsen:
   
   UPDATE t1
   SET t1.text = t2.text
   FROM Tabel1 t1 INNER JOIN Tabel2 t2
   ON t1.nummer = t2.nummer
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Kasper Kamp Simonsen (10-03-2003)
Kommentar
Fra : Kasper Kamp Simonsen


Dato : 10-03-03 14:32


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message

> Frit fra hukommelsen:

Og det virkede :) ... men hvorfor???

> UPDATE t1
> SET t1.text = t2.text
> FROM Tabel1 t1 INNER JOIN Tabel2 t2
> ON t1.nummer = t2.nummer

FROM Tabel1 t1 INNER JOIN Tabel2 t2

Hvad betyder Tabel1 t1?

/Kasper



Jens Gyldenkærne Cla~ (10-03-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 10-03-03 14:46

Kasper Kamp Simonsen skrev:

> Og det virkede :) ... men hvorfor???

Fordi sådan er syntaksen ;)

>> FROM Tabel1 t1 INNER JOIN Tabel2 t2
>
> Hvad betyder Tabel1 t1?

t1 er bare et alias for Tabel1.

I stedet for at skrive:

SELECT langttabelnavn.navn,
       langttabelnavn.nummer,
       langttabelnavn.tekst,
       andetlangttabelnavn.kode
FROM langttabelnavn INNER JOIN andetlangttabelnavn
ON langttabelnavn.idfelt = andetlangttabelnavn.idfelt

- kan man indføre et alias for en eller flere tabeller:

SELECT l.navn, l.nummer, l.tekst, a.kode
FROM langttabelnavn l INNER JOIN andetlangttabelnavn a
ON l.idfelt = a.idfelt


Mht. FROM - så er det en måde at få en handlingsforespørgsel
(INSERT/UPDATE/DELETE) til at arbejde med flere tabeller. Det er
stadig kun én tabel der er målet for handlingsforespørgslen, men
flere tabeler kan indgå under FROM.

Eksempler:

(INSERT er triviel, fordi kilden til en INSERT er en normal SELECT-
forespørgsel)

UPDATE t
SET t.pris = x.pris
FROM tabelnavn t INNER JOIN tabel2 x
ON t.id = x.id

(svarende til dit spørgsmål)

DELETE FROM t
FROM tabelnavn t INNER JOIN tabel2 x
ON t.id = x.id

(sletter alle rækker i t der har matchende rækker i x)
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Kasper Kamp Simonsen (10-03-2003)
Kommentar
Fra : Kasper Kamp Simonsen


Dato : 10-03-03 16:37


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
> > Og det virkede :) ... men hvorfor???
> Fordi sådan er syntaksen ;)

Nåå det forklarer jo en del ;)

> t1 er bare et alias for Tabel1.
> I stedet for at skrive:

Ok, tak for hjælpen :)

/Kasper



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste