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

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
подскажите по запросу с left join
    #33004125
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
подскажите по запросу с left join
    #33004807
Doberman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже самое получается
мне выводит
Код: 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
подскажите по запросу с left join
    #33005004
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где отсутствуют ?
...
Рейтинг: 0 / 0
подскажите по запросу с left join
    #33005180
Doberman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в таблице goods
...
Рейтинг: 0 / 0
подскажите по запросу с left join
    #33005234
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свой первый запрос переделываешь так:

Код: 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
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / подскажите по запросу с left join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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