powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Быстрая выборка! Посоветуйте как подсчитать кол-во не потеряв в скорости
2 сообщений из 2, страница 1 из 1
Быстрая выборка! Посоветуйте как подсчитать кол-во не потеряв в скорости
    #38668149
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
GROUP_CONCAT(`category_prep`.`Category` ORDER BY `sort`) as category
FROM (SELECT (IF (EXISTS (SELECT 1 FROM preparat INNER JOIN ((tovar INNER JOIN stock ON tovar.id = stock.idTovar) INNER JOIN apteki a ON stock.idApteki = a.id) ON preparat.id = tovar.idPreparat WHERE preparat.Prep_s Like '%крем%' 
AND `a`.`idCity`=1 AND stock.idApteki<>65 ), 1,0)) as cat1 
UNION
SELECT (IF (EXISTS (SELECT 1 FROM ((preparat_nm INNER JOIN tovar ON preparat_nm.idPreparat_nm = tovar.id) INNER JOIN stock ON tovar.id = stock.idTovar) INNER JOIN apteki a ON stock.idApteki = a.id WHERE preparat_nm.Prep_nm Like '%крем%' 
AND `a`.`idCity`=1 AND stock.idApteki<>65 AND preparat_nm.Category_nm=2 ), 2,0)) as cat2 
UNION
SELECT (IF (EXISTS (SELECT 1 FROM ((preparat_nm INNER JOIN tovar ON preparat_nm.idPreparat_nm = tovar.id) INNER JOIN stock ON tovar.id = stock.idTovar) INNER JOIN apteki a ON stock.idApteki = a.id WHERE preparat_nm.Prep_nm Like '%крем%'
 AND `a`.`idCity`=1 AND stock.idApteki<>65 AND preparat_nm.Category_nm=3 ), 3,0)) as cat3 
UNION
 SELECT (IF (EXISTS (SELECT 1 FROM ((preparat_nm INNER JOIN tovar ON preparat_nm.idPreparat_nm = tovar.id) INNER JOIN stock ON tovar.id = stock.idTovar) INNER JOIN apteki a ON stock.idApteki = a.id WHERE preparat_nm.Prep_nm Like '%крем%' 
AND `a`.`idCity`=1 AND stock.idApteki<>65 AND preparat_nm.Category_nm=4 ), 4,0)) as cat4 
UNION
SELECT (IF (EXISTS (SELECT 1 FROM ((preparat_nm INNER JOIN tovar ON preparat_nm.idPreparat_nm = tovar.id) INNER JOIN stock ON tovar.id = stock.idTovar) INNER JOIN apteki a ON stock.idApteki = a.id WHERE preparat_nm.Prep_nm Like '%крем%' 
AND `a`.`idCity`=1 AND stock.idApteki<>65 AND preparat_nm.Category_nm=5 ), 5,0)) as cat5) as cat INNER JOIN category_prep ON cat.cat1 = category_prep.id 


я при помощи Exists (самый быстрый вариант из мною тестированных в данном случае) нашел категории, где есть препарат
и присвоил данным столбца id категорий, потом сделал при помощи union один столбец, который c JOIN-ил с таблицей категорий и вывел название категории
теперь мне нужно посчитать кол-во препаратов в каждой категории, у кого есть какие идеи?
...
Рейтинг: 0 / 0
Быстрая выборка! Посоветуйте как подсчитать кол-во не потеряв в скорости
    #38668150
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
`Stock`.`idTovar`

- вот это кол-во для каждой категории нужно подсчитать
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Быстрая выборка! Посоветуйте как подсчитать кол-во не потеряв в скорости
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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