:: Не фоксом единым
T-SQL синтаксис апдейта
Анонимный пользователь
Автор
-- вот так вот
update t set t.link=sc.link
from #tt t
inner join s_corr sc on t.inn=sc.inn
inner join S_CORR_CPP Cpp on cpp.corr=sc.link and cpp.object=DBO.OBJ_ID('rrrr') and t.kpp=cpp.cppu
-- мой вариант
update #tt set link=sc.link
from s_corr sc
inner join S_CORR_CPP Cpp on cpp.corr=sc.link and cpp.object=DBO.OBJ_ID('rrrr')
where #tt.inn=sc.inn and #tt.kpp=cpp.cppu

подскажите,
какой вариант предпочтительней

спасибо
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Это MS SQL? В этом случае, я бы сначала посмотрел план запросов. На первый взгляд, должны быть одинаковые.

Как мне кажется, в данном случае, это всего лишь вопрос личных предпочтений. Как кажется удобным лично тебе так и пиши.
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
Анонимный пользователь
Автор
да, конечно - Transact-SQL

просто джоин в джоине мозгом понять не могу
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
Ну, в общем-то, это не джойн в джойне, а просто джойны.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
Анонимный пользователь
Автор
так че лучше, та

как мне писать

джоинить так
или все же писать со своей логикой

с веар моей голове проще
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
Ну значится так пока и пиши.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Второй вариант более фоксовый, первый - более SQL-ный


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
Анонимный пользователь
Автор
как бы свои мозги фоксовые
развернуть

иногда не могу себя заставить все нутро аж болеть начинает

шучу

нужно наверное еще деньгов попросить
Ratings: 0 negative/0 positive
Re: T-SQL синтаксис апдейта
AlexSSS

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
первый вариант мне кажется гораздо предпочтительнее
Он гораздо нагляднее и читабельнее.

> просто джоин в джоине мозгом понять не могу
это просто джойны. При нормализированной базе в запросе может легко оказаться с десяток джойнов. Пример из какой-то вьюшки
from v_projectworks pw
left outer join v_projects p on pw.[pid_projects]=p.[id]
left outer join v_workcomplexityes wc on pw.[pid_workcomplexityes]=wc.[id]
left outer join v_employees e on pw.[pid_employees]=e.[id]
left outer join v_centercosts ce on pw.pid_centercosts=ce.id
left outer join v_clientlists c on pw.[pid_clientlists]=c.[id]
left outer join v_units u on pw.[pid_units]=u.[id]
left outer join v_firms f on pw.pid_firms=f.id
left outer join v_bkaccounts a on pw.pid_bkaccounts=a.id
left outer join v_projectsets ps on pw.pid_projectsets=ps.id
left outer join v_teams t on pw.pid_teams=t.id
на самом деле здесь все ОЧЕНЬ просто - каждый джойн определяет одну связь между таблицами.

Что касается твоего первого варианта - он еще более удобен при проверке
update t set t.link=sc.link
from #tt t
inner join s_corr sc on t.inn=sc.inn
inner join S_CORR_CPP Cpp on cpp.corr=sc.link and cpp.object=DBO.OBJ_ID('rrrr') and t.kpp=cpp.cppu
просто заменяется на
select t.*, sc.link
from #tt t
inner join s_corr sc on t.inn=sc.inn
inner join S_CORR_CPP Cpp on cpp.corr=sc.link and cpp.object=DBO.OBJ_ID('rrrr') and t.kpp=cpp.cppu
и ты сразу сможешь увидеть, какие конкретно значения будут присвоены каждой записи. А обычно легче идти от обратного - вначале сделать SELECT c нужными полями и связями, убедиться, что все правильно работает, после чего SELECT легко заменяется на UPDATE



Исправлено 1 раз(а). Последнее : AlexSSS, 18.05.06 23:30
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 17 (Гостей: 17)

© 2000-2024 Fox Club 
Яндекс.Метрика