кто силен в запросах

Alexandre

PHPПенсионер
кто силен в запросах

У меня три таблицы (ТОВАРЫ Цены Клиенты )

ТОВАРЫ goods - описание товаров
goodId,
Name

Цены price - цена на товары (goodId) Поставщика или Производителя (ClientId)
price
goodId
ClientId


Клиенты clients
Name,
ClientId,
type - имеет значение либо Поставщик, либо Производитель

Необходимо создать запрос, который показывает цены на товары
Наименование ! Поставщик ! цена поставщика ! Производитель ! Цена производителя

Необходимо отметить, что возможна ситуация есть цена поставщика и отсутствует цена Производителя и наоборот....

запрос типа
select
g.Name Наименование, c2.name Производитедь, p2.Price, c.name Поставщик, p.Price
FROM goods g

join prices p2
ON
g.GoodId = p2.GoodId

join clients_old c2
on
p2.ClientId = c2.cod and
c2.type Like 'поставщ%'

join prices p
ON
g.GoodId = p.GoodId

join clients_old c
on
p.ClientId = c.cod and
c.type Like 'произ%'

отображает только те позиции где есть поставщик и Производители

если один из них отсутствует, то строчка не отображается
 
а в каком месте --

пробовал - не получется...
(желательно код....
 
неужели трудно написать поподробнее? У меня тоже такая проблемма!
 
и как же -- с твоей точки зрения -- выглядит ПРАВИЛЬНАЯ структура таблиц в данном случае?
 
тьфу... заработался... я имел в виду таким образом строить логику таблиц и выборок...
 
Люди,
Спасибо за отклик...

Возможно я построил структуру и не правильно,
но таблица clients_old уже существует в базе и ее переформатировать не хотельосьбы....

Теперь о задаче - Менеджеру по закупкам необходима информация о товарах, которая должна быть выыведена в таблице:
Товар! Производитель! Цена Пр. ! Поставщик ! цена Поствщ...

Возможны Варианты:
1) Нет информации о цене производителя
-- или нет информации о Производетеле
2) Прямая поставка, т.е. нет Поставщика
3) Несколько поставщиков

Если моя структура таблиц не правильная, то в качестве гимнастики для ума - предложите лучше

Мой запрос (см. начало) показывает только те строки, в которых есть соответствие
Цена Производителя и Цена Поставщика.

Если что-то из них отсутствует, то строка не показывается....

Если делаю левое объединение, то получается лишняя избыточность...
 
Хотелось бы построить такой запрос (процедуру или вьювер), который удовлетворил бы всем моим условиям...
 
Сверху