powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом из нескольких таблиц с использованием COUNT
3 сообщений из 3, страница 1 из 1
Помогите с запросом из нескольких таблиц с использованием COUNT
    #33181123
Electus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 3 таблицы:
Listings - основные категории
ListingsCategories - подкатегории Listing'ов
ListSubscriptions - элементы подкатегорий

Задача:
Выбрать все Listings, для каждого выбрать количество в нём ListingsCategories и ListSubscriptions. Т.е. результат должен быть выведен таблицей, так:
Listing NameКол-во ListingsCategoriesКол-во ListSubscriptionsFlorida 12 23Georgia 4 0

Реализация:
SELECT
Listings.Name,
COUNT(ListingsCategories.CatId) as Categories,
COUNT(ListSubscriptions.ListSubscriptionId) as Clients
FROM Listings, ListingsCategories, ListSubscriptions
WHERE
Listings.ResellerId='".$user->userid."' AND
ListingsCategories.ListingId=Listings.ListingId AND
ListSubscriptions.ListingId=Listings.ListingId
GROUP BY Listings.ListingId
ORDER BY Name

Проблема:
В случае если для какого-то Listing'а нет категорий или элементов категорий должно всё равно отображаться название категории, и нули, а при данном запросе, этого Listing'a вообще не отображается.

P.S: Разбиение на кучу запросов не предлагать.
Спасибо
...
Рейтинг: 0 / 0
Помогите с запросом из нескольких таблиц с использованием COUNT
    #33181262
По-моему, без подзапросов так получится только по двум таблицам:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
    Listings.Name,
  , COUNT(ListingsCategories.CatId) as Categories
FROM
                  Listings
  left outer join ListingsCategories
    on ListingsCategories.ListingId=Listings.ListingId
WHERE
  Listings.ResellerId='".$user->userid."'
GROUP BY Listings.ListingId
ORDER BY Name
...
Рейтинг: 0 / 0
Помогите с запросом из нескольких таблиц с использованием COUNT
    #33181283
Electus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, можно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 	p.ListingId, p.Name,
	COUNT(DISTINCT c1.CatId) as Categories, 
	COUNT(DISTINCT c2.ListSubscriptionId) as Clients
FROM Listings as p
LEFT JOIN
  ListingsCategories as c1 ON c1.ListingId = p.ListingId
LEFT JOIN
  ListSubscriptions as c2 ON c2.ListingId = p.ListingId
WHERE p.ResellerId=".$user->userid."
GROUP BY p.ListingId order by p.ListingId
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом из нескольких таблиц с использованием COUNT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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