如何在mysql中统计有记录限制的联接表的记录?

svgewumm  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(234)

我有两个表,我想计算它们之间的连接记录:
供应商和供应商地址
每个供应商可以有非或多个地址,所以我想计算前5个供应商有多少地址。
尝试了以下方法:

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

但没用,我该怎么办?

juud5qan

juud5qan1#

必须使用帮助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)

相关问题