Har ett sqlproblem jag inte riktigt får ordning på. Det är så enkelt så det borde gå, men jag får ingen ordning på det. Något sådant här borde funka: Det där var jävligt intressant, att köra en update på en joinad tabell kände jag inte till. Är det standard SQL? Nej, det är inte standard. Din första fråga är det däremot. UPDATE med en JOIN fungerar också i MySQL. Där kan man även använda JOIN i en DELETE och samtidigt ange från vilka av de JOIN:ade tabellerna som rader skall raderas.Löjligt sqlproblem, "dynamisk update"
Låt säga att vi har två tabeller, A, och B. A är en slags grupp av B
Vi får då
A
===
ID
B
===
ID
A_ID
Båda ID är autogenerade, och vi kanske har
A:
(ID: 1),
(ID: 2)
B:
(ID: X, A_ID: 1),
(ID: Y, A_ID: 2)
Nu är problemet att vi ska flytta de här till en ny databas, vilket ger nya id-nummer:
A:
(ID: 3),
(ID: 4)
B:
(ID: X, A_ID: 1),
(ID: Y, A_ID: 2)
Men det fattar inte B-tabellen.
Min ide var då att fånga upp det gamla id:t:
A:
(ID: 3, OldID:1),
(ID: 4, OldID:2)
B:
(ID: X, A_ID: 1),
(ID: Y, A_ID: 2)
och på så sätt göra om B-tabellen.
Spontant vill jag då ha typ:
UPDATE B SET A_ID = (SELECT ID FROM A WHERE OldID = A_ID)
Men det går inte. Finns det något vettigt sätt att lösa detta på med en update?
Detta råkar också vara en gammal access-grej.Sv: Löjligt sqlproblem, "dynamisk update"
UPDATE B INNER JOIN
A ON B.A_ID = A.OldID
SET B.A_ID = A.ID
Sv:Löjligt sqlproblem, "dynamisk update"
Sv: Löjligt sqlproblem, "dynamisk update"
Sv: Löjligt sqlproblem, "dynamisk update"