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

Откуда:
Сообщений: 2
Возникла следующая проблема.
Нужно вывести подходящие спрос-предложение и фамилии клиентов. Если не выводить фамилии, то такой запрос работает нормально и выводит id клиента
select orders.idclient as o_client, orders.floor as o_floor, orders.squaremin, orders.squaremax, orders.rooms as o_rooms,
orders.pricemax, apartments.idclient as a_client, apartments.floor as a_floor, apartments.square, apartments.rooms as a_rooms,
apartments.adress, apartments.price
from orders, apartments
where (orders.floor=apartments.floor) 
and (orders.rooms=apartments.rooms)
and ((apartments.square<=orders.squaremax) and (apartments.square>=orders.squaremin))
and (orders.pricemax>=apartments.price);

Но нужно, чтобы вместо id клиентов были фамилии. Пытаюсь сделать что-то типа этого.
select c1.fio as o_client, orders.floor as o_floor, orders.squaremin, orders.squaremax, orders.rooms as o_rooms,
orders.pricemax, c2.fio as a_client, apartments.floor as a_floor, apartments.square, apartments.rooms as a_rooms,
apartments.adress, apartments.price
from orders, apartments
join clients as c1 on orders.idclient=c1.id
join clients as c2 on apartments.idclient=c2.id
where (orders.floor=apartments.floor) 
and (orders.rooms=apartments.rooms)
and ((apartments.square<=orders.squaremax) and (apartments.square>=orders.squaremin))
and (orders.pricemax>=apartments.price);

Вылетает ошибка
Сообщение 4104, уровень 16, состояние 1, строка 6
Не удалось привязать составной идентификатор "orders.idclient".


Подскажите, как исправить?
29 окт 11, 01:45    [11520116]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с JOIN  [new]
aleks2
Guest
1. Работает - не трогай.

select [Работает].* , co.fio as o_client, ca.fio as a_client, 
(
select orders.idclient as o_client, orders.floor as o_floor, orders.squaremin, orders.squaremax, orders.rooms as o_rooms,
orders.pricemax, apartments.idclient as a_client, apartments.floor as a_floor, apartments.square, apartments.rooms as a_rooms,
apartments.adress, apartments.price
from orders, apartments
where (orders.floor=apartments.floor) 
and (orders.rooms=apartments.rooms)
and ((apartments.square<=orders.squaremax) and (apartments.square>=orders.squaremin))
and (orders.pricemax>=apartments.price);
) as [Работает]
left outer join
join clients as co on [Работает].o_client=co.id
left outer join
join clients as ca on [Работает].a_client=ca.id
29 окт 11, 06:00    [11520375]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с JOIN  [new]
aleks2
Guest
select [Работает].* , co.fio as o_client, ca.fio as a_client
FROM
(
select orders.idclient as o_client, orders.floor as o_floor, orders.squaremin, orders.squaremax, orders.rooms as o_rooms,
orders.pricemax, apartments.idclient as a_client, apartments.floor as a_floor, apartments.square, apartments.rooms as a_rooms,
apartments.adress, apartments.price
from orders, apartments
where (orders.floor=apartments.floor) 
and (orders.rooms=apartments.rooms)
and ((apartments.square<=orders.squaremax) and (apartments.square>=orders.squaremin))
and (orders.pricemax>=apartments.price);
) as [Работает]
left outer join
join clients as co on [Работает].o_client=co.id
left outer join
join clients as ca on [Работает].a_client=ca.id
29 окт 11, 09:05    [11520421]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с JOIN  [new]
xakbox
Member

Откуда:
Сообщений: 2
Спасибо, работает!
29 окт 11, 09:23    [11520437]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с JOIN  [new]
iljy
Member

Откуда:
Сообщений: 8711
xakbox,

не надо смешивать синтаксис JOIN и старый синтаксис с перечислением через запятую.
29 окт 11, 09:48    [11520451]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить