webForumDet fria alternativet

Uppdatera fält med sökning i flera tabeller

Databaser & SQL

4 svar · 318 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Kolla nedan på min kod. Detta fungerar inte men hur får jag det att göra det?

UPDATE projektaktivitet as pa, projektaktivitetLankning as pal SET pa.projektaktivitetStatus = 1 
Where pal.projektaktivitetID = pa.projektaktivitetID 
And pal.projektanvandareID = 3 
And pa.projektaktivitetStart >= '2001-01-01 00:00:00' And pa.projektaktivitetSlut <= '2006-03-31 00:00:00' 
And projektaktivitetStatus = 0
Medlem sedan jan. 20013 406 inlägg
#2

Detta fungerar ju men borde det inte gå att göra i en enda fråga?

UPDATE projektaktivitet SET projektaktivitetStatus = 1 
Where projektaktivitetID in 
(Select pa.projektaktivitetID 
From projektaktivitet as pa, projektaktivitetLankning as pal 
Where pal.projektaktivitetID = pa.projektaktivitetID 
And pal.projektanvandareID = 3 
And pa.projektaktivitetStart >= '2001-01-01 00:00:00' 
And pa.projektaktivitetSlut <= '2006-03-31 00:00:00' 
And pa.projektaktivitetStatus = 0)
Medlem sedan juni 200032 967 inlägg
#3

Jo, det går säkert, men du har inte angett vilken dbms du använder.

Medlem sedan dec. 200012 464 inlägg
#4

Du borde inte ha med tabellen projektaktivitet i din subselect, istället refererar du den yttre tabellen.

Detta fungerar ju men borde det inte gå att göra i en enda fråga?

Så vitt jag kan se så använder du en fråga.

Medlem sedan jan. 20013 406 inlägg
#5

LarsG skrev:

Du borde inte ha med tabellen projektaktivitet i din subselect, istället refererar du den yttre tabellen.

Detta fungerar ju men borde det inte gå att göra i en enda fråga?

Så vitt jag kan se så använder du en fråga.

Är det det bästa sättet att göra det på?

Anders jag använder MS SQL 2005

517 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
379 ms — ändringar (db)