Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / подскажите по запросу с left join / 6 сообщений из 6, страница 1 из 1
08.04.2005, 00:01
    #33003820
Doberman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
есть три таблицы - поставщики, товар и тип товара

supplier
------------
id
name

goods
------------
id
name
supplier_id
goods_type

goods_type
------------
id
description

типов товаров немного, 5 или 6 (т.е. соответсвенно 5 или 6 записей в goods_type)
мне нужно посчитать сколько товаров каждого типа для конкретного поставщика, если товар такого типа отсутствует, то вывести 0.

я пишу
Код: plaintext
1.
select goods_type.id as gt, count(*) from goods_type left join goods on goods_type.id = goods.goods_type where supplier_id =  10  group by gt;

мне выводит количество только тех товаров, тип которых присутвует в goods.
т.е. если товара какого-нибудь вида нету, то и записи (с количеством 0) в результирующей таблице не будет.
...
Рейтинг: 0 / 0
08.04.2005, 10:27
    #33004125
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
Код: plaintext
1.
2.
3.
4.
5.
select g.goods_type, g.supplier_id, count(*) 
from goods g
left join goods_type gt on gt.id = g.goods_type 
left join supplier s on s.id = g.supplier_id
where g.supplier_id =  10  
group by g.goods_type, g.supplier_id
...
Рейтинг: 0 / 0
08.04.2005, 13:32
    #33004807
Doberman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
тоже самое получается
мне выводит
Код: plaintext
1.
2.
3.
4.
5.
+------------+-------------+----------+
| goods_type | supplier_id | count(*) |
+------------+-------------+----------+
|           1  |          153  |        25  |
+------------+-------------+----------+
а мне нужно чтобы примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
+------------+-------------+----------+
| goods_type | supplier_id | count(*) |
+------------+-------------+----------+
|           1  |          153  |        25  |
+------------+-------------+----------+
|           2  |          153  |         0  |
+------------+-------------+----------+
|           3  |          153  |         0  |
+------------+-------------+----------+
если какие-либо типы товаров отсутствуют
...
Рейтинг: 0 / 0
08.04.2005, 14:15
    #33005004
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
Где отсутствуют ?
...
Рейтинг: 0 / 0
08.04.2005, 14:44
    #33005180
Doberman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
в таблице goods
...
Рейтинг: 0 / 0
08.04.2005, 14:56
    #33005234
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по запросу с left join
Свой первый запрос переделываешь так:

Код: plaintext
1.
select gt.id, (select count(*) goods g where (g.goods_type = gt.id) and (g.supplier_id =  10 ))
from goods_type gt
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / подскажите по запросу с left join / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]