Обновить данные в разных таблицах в SQL Server - PullRequest
1 голос
/ 06 ноября 2008

В таблице у меня есть следующая схема

table1:
playerID int primary key,
nationalities nvarchar

table2:
playerID int,
pubVisited nvarchar

Теперь я хочу установить для всех игроков значение «посещено» равным нулю, для игрока с национальностью «Англия», есть идеи, как это сделать?

Ответы [ 3 ]

4 голосов
/ 06 ноября 2008

Проверено на SQL Server 2005

update table2 set pubVisited = NULL 
from 
    table1 t1 
        inner join 
    table2 t2 
    on (t1.playerID = t2.playerID and t1.nationalities = 'England')
3 голосов
/ 06 ноября 2008

Судя по типу nvarchar , вы используете MSSQL. Теперь в MySQL вы можете использовать подвыбор в условии update .. where, но MSSQL имеет свое собственное обновление .. from предложение:

UPDATE table2
SET
    table2.pubVisited = null
FROM table1
WHERE
    table2.playerID = table1.playerID and table1.nationalities = 'England'

Хотя не проверял его, поэтому он может не работать.

0 голосов
/ 06 ноября 2008

Синтаксис в Oracle будет:

update table2
set playedvisited = NULL
where playerID in (select playerID 
                   from table1 
                   where nationalities = 'England')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...