Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите написать запрос для трёх таблиц  [new]
Човайохоя
Guest
Есть три таблицы:
1)
ID1 StrNum
1 A85
2 R01
3 E74
4 U80
5 G36
6 I14

2)
ID1 NAME1
1 СтароеИмя1
2 СтароеИмя2
3 СтароеИмя3
4 СтароеИмя4
5 СтароеИмя5
6 СтароеИмя6

3)
StrNum NAME2
A85 НовоеИмя1
R01 НовоеИмя2
E74 НовоеИмя3
U80 НовоеИмя4
G36 НовоеИмя5
I14 НовоеИмя6

1-я как бы связующая для 2 и 3.
Нужно во второй таблице заменить СтароеИмя на НовоеИмя из таблицы №3.
Поле StrNum в 3-й таблице текстовое.
19 янв 12, 19:40    [11935545]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
BOL -> UPDATE (Transact-SQL) -> Exmple C. Using the UPDATE statement with information from another table
19 янв 12, 20:10    [11935744]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
Човайохоя
Guest
invm,

не получается у меня.

нашел в указанной Вами справке пример для 4-х таблиц:
SELECT *
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.c3 = tab2.c3
    RIGHT OUTER JOIN tab3 LEFT OUTER JOIN tab4
        ON tab3.c1 = tab4.c1
        ON tab2.c3 = tab4.c3


переделал под себя так:
SELECT *
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.c3 = tab2.c3
    RIGHT OUTER JOIN tab3 
        ON tab2.c3 = tab3.c3
WHERE tab1 .c1 = 50
(не)получившийся запрос возвращает очень много записей, в общем не правильно сделал.
Помогите, товарищи!
19 янв 12, 20:52    [11935883]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Човайохоя
Нужно во второй таблице заменить СтароеИмя на НовоеИмя из таблицы №3.
По-Вашему, это делается селектом?
19 янв 12, 21:03    [11935926]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Човайохоя, вы забыли поиспользовать еще CROSS и FULL объединения. Так. На всяк случай.
19 янв 12, 21:06    [11935934]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
Човайохоя
Guest
iap,

не беспокойтесь, я знаю, что делается UPDATE-ом.
По-Вашему я должен после каждой неудачной попытки замены откатываться на резервную копию базы ?
Сначала я думаю нужно прийти к следующему результату:
ID1StrNumNAME1NAME2
1A85СтароеИмя1НовоеИмя1
а уже потом update
19 янв 12, 21:09    [11935939]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос для трёх таблиц  [new]
Човайохоя
Guest
разобрался, все спасибо кто помогал ! вопрос закрыт
19 янв 12, 21:18    [11935971]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить