webForumDet fria alternativet

UPDATE och nästlade sql-satser

2 svar · 324 visningar · startad av Janspeed

JanspeedMedlem sedan jan. 2001510 inlägg
#1

Hej!

Jag har lite problem med att göra en nästlad SQL-sats. Jag har två tabeller en gammal och en ny. Den nya har postort men saknar distrikt som jag vill ska läggas till via SQL-satsen. Den gamla har Postort och distrikt.

Jag vill alltså göra en SQL-sats som uppdaterar distriktfältet i den nya tabellen med det distrikt som motsvarande ort har i den gamla. Nu är det inte helt säkert att alla postorter som finns i den nya finns med i den gamla.

Finns det nån lösning på detta? Jag har försökt lite med nästlade satser och IN men jag har inte riktigt lyckats greppa dem? Är det nån som har ett förslag?

Jag började lite på försök men får hela tiden felmeddelandet att jag försöker uppdatera med fler än ett fält:

UPDATE newfile
SET newfile.Distrikt = (SELECT DISTINCT oldfile.Distrikt where newfile.Postort = oldfile.Postort)

Är mycket tacksam för all hjälp.

/Janspeed

agneta_rungMedlem sedan juli 2002145 inlägg
#2

Hej!

update newfile
set distrikt =
(select distrikt from oldfile where postort = newfile.postort)

agneta_rungMedlem sedan juli 2002145 inlägg
#3

Hej igen!

Svarade fort men fel men fort!! :r

Om man gör så här så funkar det även om postorten inte finns i oldfile:

update newfile
set distrikt =
(select distrikt from oldfile where postort = newfile.postort)
where exists
(select * from oldfile where postort = newfile.postort)

Om inte detta funkar beror det sannolikt på att du får fler träffar i subselecten, dvs att en och samma postort finns registrerad med olika distrikt.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)