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

Откуда:
Сообщений: 8
Есть 2 таблицы Окна(nazwa, osciez1,osciez2,osciez3,osciez4) и Рами(nr_art,opis)
Окно складиваються из рам. Поле osciez1,osciez2,osciez3,osciez4 равно какому то полю nr_art в таблице Рами (может бить даже одинаковому).
Каждий nr_art(номер артикула) содержит opis(описание).

Мне нужно с помощью запроса вывести название(nazwa) Окна а также номер артикула(nr_art) и описание(opis) к каждой раме из которого оно состоит(opis)

Проблема в том что таблица Рами содержит описание(opis) для каждого nr_art(номера артикула)
Но в таблице Окна есть 4 колонки osciez1,osciez2,osciez3,osciez4 и все они отвечают соответвующим nr_art в таблице Рами

В таблице Рами в свою очередь каждый nr art содержит opis(описание) и как вивести описание к каждому nr_art в одной таблице я непонимаю

В идеале должно быть
nazwa osciez1-opis,osciez 2-opis,osciez 3-opis,osciez4-opis
То есть описание к каждой раме. Но на деле у меня такое:
select distinct t1.nazwa, t1.osciez1, t1.opis, t2.osciez2, t2.opis, t3.osciez3, t3.opis, t4.osciez4, t4.opis from
	(
	select  nazwa, osciez1, opis from typyp,osciezp
	where osciezp.nr_art=typyp.osciez1
	) t1,
	(
	select osciez2,opis from typyp,osciezp
	where osciezp.nr_art=typyp.osciez2
	) t2,
	(
	select osciez3,opis from typyp,osciezp
	where osciezp.nr_art=typyp.osciez3
	) t3,
	(
	select osciez4,opis from typyp,osciezp
	where osciezp.nr_art=typyp.osciez4
	) t4


И в результате овер 13000 рядков
Картинка с другого сайта.
16 сен 15, 21:56    [18158266]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на виборку  [new]
xenix
Guest
пока все выглядит очень загадочно. Тестовый пример можете привести?
16 сен 15, 22:16    [18158324]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на виборку  [new]
таблицы Окна
Guest
matviishyn,

исходная таблица нужна в запросе один раз

from typyp
left join osciezp as osciez1 on ...
left join osciezp as osciez2 on ...
...


через запятую соединения не нужно писать никогда
16 сен 15, 22:27    [18158366]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на виборку  [new]
matviishyn
Member

Откуда:
Сообщений: 8
Благодарен
автор
select nazwa,osciez1,osciez1.opis, osciez2,osciez2.opis, osciez3,osciez3.opis, osciez4, osciez4.opis from typyp
left join osciezp as osciez1 on osciez1.nr_art=typyp.osciez1
left join osciezp as osciez2 on osciez2.nr_art=typyp.osciez2
left join osciezp as osciez3 on osciez3.nr_art=typyp.osciez3
left join osciezp as osciez4 on osciez4.nr_art=typyp.osciez4
17 сен 15, 00:01    [18158686]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить