Como usar a instrução de junção no MSSQL corretamente? [fechadas]

1

Sou muito novo no SQL e já li algo sobre junções, mas não consegui descobrir. Eu pintei meu cenário aqui:

Eu quero atualizar o Firstname of Table1 no Temp1, onde o CreateTS do ID correspondente na Tabela2 é < 08.02.2014

para isso preciso de uma junção mas não consigo resolvê-la. Quaisquer dicas são bem-vindas ..

update Table1
set Firstname = 'Temp1'
where Firstame = 'xxx'

join Table
and CreateTS < '2014-02-08 15:00:00.000'
    
por RayofCommand 12.02.2014 / 14:33

3 respostas

2

Tente:

update Table1 t1
set t1.Firstname = 'Temp1'    
inner join Table2 t2 on
  t1.Id = t2.Id -- Whatever your PK and FK are here
where t1.Firstame = 'xxx'
and t2.CreateTS < '2014-02-08 15:00:00.000'
    
por 12.02.2014 / 14:55
2

Aqui abaixo você tem a resposta. Para destacar a alteração, inseri dois FirstName como 'not_updated'. Por favor, veja SQL_Fiddle

update Table1
join Table2 on Table1.id = Table2.id
set Table1.FirstName = 'Temp1'
where Table2.CreateTS < '2014-02-08  15:00:00.000';

Espero que isso ajude.

    
por 12.02.2014 / 16:08
1

Eu não usaria join para isso. Experimente:

UPDATE Table1,Table2
SET Table1.FirstName = 'Temp1'
WHERE Table1.FirstName = 'xxx' AND Table1.ID = Table2.ID AND Table2.CreateTS < '2014-02-08 15:00:00.000'
    
por 12.02.2014 / 14:51