Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Нужна небольшая помощь с запросом.Есть таблица Plan в ней поля User ID и ActiveNumber и Есть таблица Users,где есть поля UserId и
Number.они никак не связаны.есть таблица в которой уже есть строки,и по правилам (activenumber должен совпадать с number,но есть строки которые не совпадают.)Как мне написать Update чтобы обновить данные и установить в таблице Plan значения с таблицы Users.
мой вариант
21 окт 14, 20:12    [16739623]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Антоха_ВУ
они никак не связаны

"Они" - это таблицы или поля ?
21 окт 14, 20:14    [16739636]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,зависимостей типа foreign key нет.я это имел ввиду
21 окт 14, 20:16    [16739640]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Что мешает использовать join ?
Начать с запроса select
21 окт 14, 20:17    [16739642]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,я пробовал подзапросом. просто до join еще лабы не дошли)

UPDATE Plan SET ActiveNumber = (SELECT Number FROM Users WHERE UserId= Plan.USERID)
WHERE Plan.userID = (SELECT UserId FROM Users WHERE UserId=USERID)

эт как дословно я понял,но что-то не так
21 окт 14, 20:19    [16739649]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Антоха_ВУ
эт как дословно я понял,но что-то не так

начните с написания select, который _выберет_ для каждой записи одной таблицы какое-то значееие из другой таблицы

Сообщение было отредактировано: 21 окт 14, 20:21
21 окт 14, 20:21    [16739655]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,

Select ActiveNumber FROM Plan a join Users b on a.UserId=b.UserId что такое? дальше апдейтить?
21 окт 14, 20:25    [16739664]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Антоха_ВУ
Select ActiveNumber

вы собрались апдейтить поле ActiveNumber на ActiveNumber ?
21 окт 14, 20:28    [16739677]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,

Select ActiveNumber FROM Plan a join Users b on a.UserId=b.UserId and ActiveNumber!=Number если быть точнее
21 окт 14, 20:29    [16739678]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,

я выбрал что собираюсь апдейтить
21 окт 14, 20:30    [16739686]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Антоха_ВУ
я выбрал что собираюсь апдейтить

Ну так я и спрашиваю - на что вы собрались апдейтить
21 окт 14, 20:31    [16739689]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,на number, только как это написать?
21 окт 14, 20:33    [16739695]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Антоха_ВУ
Glory,на number, только как это написать?

Мда.
Напишите select. Это понятно ?
Где будет два поля - "что апдейтить" и "на что апдейтить". Это понятно ?
21 окт 14, 20:35    [16739701]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory,туплю
вот


Select a.ActiveNumber,b.Number FROM Plan a ,Users b where a.UserId= b.UserId and a.ActiveNumber!=b.Number
21 окт 14, 20:40    [16739718]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Теперь внимательно смотрите

селект
Select a.ActiveNumber,b.Number 
 FROM Plan a 
 INNER JOIN Users b on a.UserId= b.UserId and a.ActiveNumber!=b.Number


превращается в апдейт
UPDATE a SET a.ActiveNumber= b.Number 
 FROM Plan a 
 INNER JOIN Users b on a.UserId= b.UserId and a.ActiveNumber!=b.Number


Сообщение было отредактировано: 21 окт 14, 20:43
21 окт 14, 20:42    [16739729]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
Антоха_ВУ
Member

Откуда:
Сообщений: 21
Glory, maaagic) спасибо,обьяснили понятно)
21 окт 14, 20:58    [16739799]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8855
Glory, +5 !
-----------------
ЗЫ Блеа!, как подменили
21 окт 14, 23:58    [16740558]     Ответить | Цитировать Сообщить модератору
 Re: update с подзапросом  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
+50!!!
SIMPLicity_
Glory, +5 !
-----------------
ЗЫ Блеа!, как подменили
22 окт 14, 16:27    [16744304]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить