mysql - SQL 多对多对多

标签 mysql sql

我必须构建的查询出现问题。有3张表,都是多对多,一个接一个。

Table Stores - id,store_name

Table Clients - id,store_id,client_name

Table Products - id,client_id,product_name

简而言之 - 可以从许多客户处购买一种产品。一个客户端可以位于多个商店中。

任务是获取所有商店及其客户数量(一个人是至少购买了一种产品的客户。如果client_id 未购买至少 1 个产品 - 他不是真正的客户)。

最佳答案

SELECT store_name, COUNT(store_name)
FROM Stores s
INNER JOIN Clients  c on (s.id = c.store_id )
INNER JOIN Products p on (c.id = p.client_id)
GROUP BY store_name

关于mysql - SQL 多对多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562556/

相关文章:

mysql - 使用mysql从UTC格式计算特定月份

mysql - 从列中提取 SQL DATE

mysql - 学生出勤表结构

sql - 在 Select 语句中使用存储过程的结果

php - SQL SELECT 语句从具有外键和关联关系的多个表中提取数据

mysql - 加入 3 个表时计数错误

sql - 如何基于两个不同的列进行 ORDER BY

php - 检索 mysql 数据并输出为脚本。

mysql - 为什么 PostgreSQL 在 Windows 上这么慢?

mysql - 如果不存在类似记录则添加新记录