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

Откуда:
Сообщений: 280
Добрый...
Подскажите пожалуйста!
Даны две таблицы:
Таблица 1
n тип int

Таблица 2
n тип int
street тип

и допустим
Таблица 1
1
2
1

Таблица 2
1 Гап
2 Лом
3 Бре

как сделать выборку из первой таблицы чтобы
вместо значений первой подставлялись значения из второй из поля street в зависимости от значения в таблицы 1
вот так:
Гап
Лом
Гап

Заранее спасибо.
Как этот прием вообще называется? Не знаю в каком направлении искать ответ!
25 окт 05, 20:01    [2005111]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
_Maxx_
Member

Откуда: Санкт-Петербург
Сообщений: 23
Никто
Добрый...
Подскажите пожалуйста!
Даны две таблицы:
Таблица 1
n тип int

Таблица 2
n тип int
street тип

и допустим
Таблица 1
1
2
1

Таблица 2
1 Гап
2 Лом
3 Бре

как сделать выборку из первой таблицы чтобы
вместо значений первой подставлялись значения из второй из поля street в зависимости от значения в таблицы 1
вот так:
Гап
Лом
Гап

Заранее спасибо.
Как этот прием вообще называется? Не знаю в каком направлении искать ответ!


select Таблица1.n, street from Tаблица1
join Таблица2 on (Таблица1.n=Таблица2.n)
25 окт 05, 20:04    [2005119]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
ravilich
Member

Откуда: Санкт - Петербург
Сообщений: 42
case <__>
when 1condition then ...
when 2 condition then ...
else....
end case
25 окт 05, 20:05    [2005121]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Никто
Member

Откуда:
Сообщений: 280
получилось, но не совсем то что нужно
я не совсем правильно вопрос задал.
Нужно на самом деле вот так:
есть
Таблица 1 (основная)
name char -- имя человека
n тип int -- код улицы
... и так далее
и
Таблица 2 (справочник)
n тип int
street тип (Название улицы)
... и так далее
и допустим
Таблица 1
Иванов И.И. | 1
Петров А.А. | 2
Сидоров К.К. | 1

Таблица 2 (справочник улиц)
1 | Безымяная
2 | Ломоносова
3 | Гагарина


Так вот как составить запрос что выдало:
name | n | ... и так далее
Иванов И.И. | Безымяная | ... и так далее
Петров А.А. | Ломоносова | ... и так далее
Сидоров К.К.| Безымяная | ... и так далее
25 окт 05, 20:20    [2005150]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Никто
Member

Откуда:
Сообщений: 280
то есть вместо кода улицы вставлять название улицы из другой таблицы
25 окт 05, 20:21    [2005152]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
_Maxx_
Member

Откуда: Санкт-Петербург
Сообщений: 23
Никто

Таблица 1 (основная)
name char -- имя человека
n тип int -- код улицы
... и так далее
и
Таблица 2 (справочник)
n тип int
street тип (Название улицы)
... и так далее
и допустим
Таблица 1
Иванов И.И. | 1
Петров А.А. | 2
Сидоров К.К. | 1

Таблица 2 (справочник улиц)
1 | Безымяная
2 | Ломоносова
3 | Гагарина


Так вот как составить запрос что выдало:
name | n | ... и так далее
Иванов И.И. | Безымяная | ... и так далее
Петров А.А. | Ломоносова | ... и так далее
Сидоров К.К.| Безымяная | ... и так далее


select name, street from Tаблица1
join Таблица2 on (Таблица1.n=Таблица2.n)
То же самое, что я писал выше. Чем плох результат-то?
25 окт 05, 20:44    [2005191]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Никто
Member

Откуда:
Сообщений: 280
а если таких таблиц как таблица 2 будет несколько? и из каждой надо будет подставлять значения?
25 окт 05, 20:49    [2005197]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Никто
Member

Откуда:
Сообщений: 280
то есть будет таблица 3 с названиями городов, и надо будет вместо кода города в главной таблице, подставить значение (название) из справочной таблицы, вместо кода города.
и еще будет несколько справочников. в которых будет полное описание каких-то параметров, а в основной таблице будут хранится их коды.
Как это сделать? и еще чтоб поле "n" не фигурировало в выводе? Хотя вроде не мешает, но все-таки?
25 окт 05, 20:57    [2005209]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Taffy
Member

Откуда:
Сообщений: 20510
select t2.name as name1, 
          t3.name as name2, 
          t4.name as name3
from Tаблица1 t1 inner join 
       Таблица2 t2 on t1.n = t2.id inner join
       Таблица3 t3 on t1.k = t3.id inner join
       Таблица4 t4 on t1.m = t4.id 
25 окт 05, 21:21    [2005244]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Glory
Member

Откуда:
Сообщений: 104764
то есть будет таблица 3 с названиями городов, и надо будет вместо кода города в главной таблице, подставить значение (название) из справочной таблицы, вместо кода города.
и еще будет несколько справочников. в которых будет полное описание каких-то параметров, а в основной таблице будут хранится их коды.
Как это сделать?


join-ов в запросе может быть несколько

и еще чтоб поле "n" не фигурировало в выводе?
Все в вашиз руках - какие столбцы перечислите в select, такие и будут фигурировать.
25 окт 05, 21:22    [2005245]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4541
По этомуповоду только один совет - читайте BOL в отношении JOIN соединений
26 окт 05, 00:28    [2005703]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Никто
Member

Откуда:
Сообщений: 280
Спасибо за помощь!
26 окт 05, 10:36    [2006501]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
Kontugenyi
Member

Откуда:
Сообщений: 4
Добрый день! У меня возник аналогичный вопрос, но чуть отличающийся. Если у меня в основной таблицы есть 2 поля, связанные с одной и той же таблицей справочником принцип с объединением такой же или есть какие-то более оптимальные способы? Задача - вывести все значения задач, добавив к id справочников их значения (или только заменив эти значения).

Никак не могу сообразить, т.к. если по inner Join я ограничу таблицу "Сотрудники" значениями "сотрудников исполнителей" как мне проводить объединение с этой таблицей еще раз.

Таблица. Задачи
Задача_id
Задача_описание
Исполнитель_id (из справочника Сотрудники)
Руководитель_id (из справочника Сотрудники)
19 янв 18, 15:13    [21120631]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30773
Kontugenyi
принцип с объединением такой же или есть какие-то более оптимальные способы?
Такой же.
19 янв 18, 15:16    [21120648]     Ответить | Цитировать Сообщить модератору
 Re: как сделать выборку так чтоб подставить данные из другой таблицы?  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Kontugenyi
как мне проводить объединение с этой таблицей еще раз
Алиасы
19 янв 18, 15:34    [21120738]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить