как посчитать в mysql записи объединенных таблиц с ограничением записей? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть 2 таблицы, в которые я хочу сосчитать объединенные записи между ними:

поставщиков и адреса поставщиков

у каждого поставщика может быть не много адресов, поэтому я хочу сосчитать дляПервые 5 поставщиков, сколько у них адресов.

пробовал что-то вроде:

select count(*) from suppliers inner join supplier_addresses limit 5;

, но это не работает, что мне здесь делать?

1 Ответ

0 голосов
/ 18 декабря 2018

Вы должны сгруппировать адреса по поставщикам с помощью оператора GROUP BY для правильного расчета по каждому поставщику.Например:

SELECT 
   suppliers.id,
   count(*) 
FROM suppliers 
INNER JOIN supplier_addresses ON suppliers.id = supplier_addresses.supplier_id
GROUP BY suppliers.id
LIMIT 5;

Если вы хотите получить количество адресов от 5 поставщиков, вы можете использовать подзапрос.Например:

SELECT count(*)
FROM supplier_addresses 
WHERE supplier_id IN (
   SELECT id
   FROM suppliers
   LIMIT 5)

Конечно, вы можете использовать определенные идентификаторы поставщиков ^

SELECT count(*)
FROM supplier_addresses 
WHERE supplier_id IN (1,2,3,4,5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...