Я пытаюсь подсчитать количество результатов в столбце после присоединения к таблице, и мне трудно работать с моим запросом.SQL - Объединение нескольких таблиц и count()
В конечном итоге, Мне нужно получить таблицу с идентификатором продукта, названием продукта и количеством медийных средств для каждого продукта.
Это то, что я до сих пор:
SQL
select
p.id,
p.name,
count(distinct mp.media_id)
from products as p
left join medias_products as mp
on mp.product_id = p.id
group by mp.media_id
order by p.id
Эти таблицы:
Medias
Id | client id
------ | ---------
1 | 1
2 | 2
Продукты
id | name | client_id
------ | -------- | ---------
1 | product1 | 1
2 | product2 | 2
medias_products
product_id | media_id
---------- | --------
1 | 2
2 | 1
Client
id | name
------ | -----
1 | Peter
2 | John
Кроме того, я хотел бы найти другой запрос, который дал бы мне результаты фильтруются с помощью конкретного идентификатора клиента ,
Может кто-то пролить некоторый свет и поделиться знаниями.
Заранее спасибо.
Существует один основной вопрос, который предотвращает ваш запрос от быть принят SQL компилятор: если у вас есть запрос с группой по-п, как «группа по attrib1, attrib2», то выберите-части не должен содержать никаких других атрибутов, кроме атрибута1 и attrib2 (кроме агрегатных функций, таких как count, sum, ...). –