inner join
От: puma777  
Дата: 06.02.13 13:50
Оценка:
Добрый день!

Возник ещё вопросик в моей юной карьере


если хочешь сделать update, в котором имеется inner join на эту же таблицу, как поступать?
inner join same table
Re: inner join
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 06.02.13 13:56
Оценка:
Здравствуйте, puma777, Вы писали:

P>Добрый день!


P>Возник ещё вопросик в моей юной карьере



P>если хочешь сделать update, в котором имеется inner join на эту же таблицу, как поступать?


Если иннер джойн нужен для фильтрации, то update.. from
Если хочется обновить сразу 2 таблицы, то никак
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re: inner join
От: Nikе Россия  
Дата: 06.02.13 14:01
Оценка:
Здравствуйте, puma777, Вы писали:

P>если хочешь сделать update, в котором имеется inner join на эту же таблицу, как поступать?


Проверить ещё раз, что оно действительно нужно. Использовать временную таблицу для промежуточного результата.
Нужно разобрать угил.
Re[2]: inner join
От: puma777  
Дата: 06.02.13 14:23
Оценка:
Здравствуйте, Sshur, Вы писали:

S>Здравствуйте, puma777, Вы писали:


P>>Добрый день!


P>>Возник ещё вопросик в моей юной карьере



P>>если хочешь сделать update, в котором имеется inner join на эту же таблицу, как поступать?


S>Если иннер джойн нужен для фильтрации, то update.. from

S>Если хочется обновить сразу 2 таблицы, то никак


обновить хочу несколько строчек в одном столбике, но т.к. иннер ёин на одну и туже таблицу, не могу написать скрипт.
Re[3]: inner join
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 06.02.13 14:26
Оценка:
Здравствуйте, puma777, Вы писали:

S>>Если иннер джойн нужен для фильтрации, то update.. from

S>>Если хочется обновить сразу 2 таблицы, то никак


P>обновить хочу несколько строчек в одном столбике, но т.к. иннер ёин на одну и туже таблицу, не могу написать скрипт.



так что ли?


update products 
set Name = "111" 
from categories
where categories.id = products.category and categories.Name = 'Beverages'
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re[4]: inner join
От: puma777  
Дата: 06.02.13 15:02
Оценка:
Здравствуйте, Sshur, Вы писали:

S>Здравствуйте, puma777, Вы писали:


S>>>Если иннер джойн нужен для фильтрации, то update.. from

S>>>Если хочется обновить сразу 2 таблицы, то никак


P>>обновить хочу несколько строчек в одном столбике, но т.к. иннер ёин на одну и туже таблицу, не могу написать скрипт.



S>так что ли?



S>
S>update products 
S>set Name = "111" 
S>from categories
S>where categories.id = products.category and categories.Name = 'Beverages'
S>





нет, имела ввиду так:
UPDATE C

set SerialNumber = '0'

FROM [VerbauInfo_Prod].[dbo].[Component] AS C inner join [VerbauInfo_Prod].[dbo].[Component] AS ED
ON C.ComponentParentId = ED.ObjectId

where C.ComponentKindObjectId = 104
and ED.SerialNumber = '010034890'
Re: inner join
От: avpavlov  
Дата: 06.02.13 15:19
Оценка:
P>если хочешь сделать update, в котором имеется inner join на эту же таблицу, как поступать?

А чего пишет?
Re[5]: inner join
От: avpavlov  
Дата: 06.02.13 15:26
Оценка:
Вот так можно, но твой вариант тоже должен работать. Какую ошибку выдает?
UPDATE 

 set SerialNumber = '0'

 FROM [VerbauInfo_Prod].[dbo].[Component] 
 where C.ComponentKindObjectId = 104 
 and C.ComponentParentId in (select ED.ObjectId from [VerbauInfo_Prod].[dbo].[Component] AS ED where ED.SerialNumber = '010034890')
Re[6]: inner join
От: puma777  
Дата: 07.02.13 14:26
Оценка:
Здравствуйте, avpavlov, Вы писали:


A>Вот так можно, но твой вариант тоже должен работать. Какую ошибку выдает?



мой вопрос заключался в следущем: что именно следует после update, я писала имя таблицы, и он выдавал ошибку. Теперь знаю, что можно alias писать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.