Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Соединить 3 таблицы (Graider) 29/09/2003 - 19:07:37



From: Graider - 29/09/2003 - 19:07:37
Subject:Соединить 3 таблицы
-----------------
1 табл. Продажи - с колонками МенеджерИд,ТоварИд,Кво - продажи всех товаров всеми менеджерами;
2 табл. Менеджеры - список всех менеджеров с колонками МенеджерИд,МенеджерФИО (100 записей)
3 табл. Товары - список интересующих нас товаров с колонками ТоварИд,ТоварИмя (5 записей)
Вот этот запрос дает ВСЕХ менеджеров с указанием продаж каждым ВСЕХ товаров:
SELECT Менеджеры.МенеджерИд,SUM(Продажи.Кво) FROM Продажи RIGHT JOIN Менеджеры ON Продажи.МенеджерИд =Менеджеры.МенеджерИд GROUP BY МенеджерИд
Этот запрос дает список менеджеров, которые хоть что-то продали из указанных товаров:
SELECT Продажи.МенеджерИд,SUM(Продажи.Кво) FROM Продажи, Менеджеры,Товары WHERE Продажи.МенеджерИд =Менеджеры.МенеджерИд Продажи.ТоварИд =Товары.ТоварИд GROUP BY МенеджерИд

Задача: Получить одну таблицу, содержащую Всех менеджеров с указанием объема продаж ВЫБРАННЫХ товаров.
SELECT Менеджеры.МенеджерИд,SUM(Продажи.Кво) FROM Продажи RIGHT JOIN Менеджеры ON Продажи.МенеджерИд =Менеджеры.МенеджерИд, Товары WHERE Продажи.ТоварИд =Товары.ТоварИд GROUP BY МенеджерИд
в результате получается таблица где есть ВСЕ менеджеры, но объемы продаж почему-то ВСЕХ товаров, а не указанных. EXPLAIN показал, что сначала читается таблица: Менеджеры, затем Продажы и потом Товары, т.е.прочитав Продажы раньше Товары не удается применить условие на вхождение ТоварИд из Продажы в Товары. Как же мне правильно составить запрос чтобы получить нужный результат или одним запросом не получится ?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
10889



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |