Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом из нескольких таблиц с использованием COUNT / 3 сообщений из 3, страница 1 из 1
23.07.2005, 10:24:51
    #33181123
Electus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом из нескольких таблиц с использованием COUNT
Есть 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
23.07.2005, 16:00:04
    #33181262
Помогите с запросом из нескольких таблиц с использованием COUNT
По-моему, без подзапросов так получится только по двум таблицам:
Код: 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
23.07.2005, 17:13:06
    #33181283
Electus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом из нескольких таблиц с использованием COUNT
Не, можно

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


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