webForumDet fria alternativet

Fylla tom kolumn i tabell med värden från andra tabeller?

Databaser & SQL

2 svar · 551 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

Använder MySQL 5.

Jag håller på och ändrar i min tabellstruktur. I en av mina äldsta tabeller har varje användare lagrats bara med namn, och nu har jag stoppat in en ID-kolumn där jag vill stoppa in motsvarande ID-värde. (Det är inte användartabellen, utan ett samband, fullt med olika användare i en salig oordning.) Eftersom tabellen är ca 1200 skarpa rader stor känner jag varken för att göra detta manuellt eller att testa mig fram.

Relevant del av strukturen:
R (uID, uName, qID, date, ....) //uID är alltså NULL för alla rader nu
User (uID, uName, uPass, ....) //uName är samma i båda tabellerna, och uID ska bli det.

Det skulle vara lätt att skriva en funktion som gör detta i PHP, men det kanske går att skriva i ren SQL? Någon som har några bra tips?

Medlem sedan dec. 20025 483 inlägg
#2
update r
     , user
   set r.uid = user.uid
 where r.uname = user.uname
Medlem sedan mars 20034 471 inlägg
#3

Perfekt! Utmärkt! Tack! :birp

Jag trodde inte att det gick med joiner och den varianten kom jag inte på...

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
115 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)