mysql - 大多数产品如何获得用户

标签 mysql sql

我有 3 个表:

发票:

invoice_id | user_name | user_id | cost | shop_Id 

发票产品:

id | invoice_id | user_id | product_id | quantity

产品:

product_id | product_name | description

我需要 shop_id = 1 结果且客户有多种产品的前 5 位客户:

invoice_id | user_name | user_id | product_name | product_description

最佳答案

您可以按照以下步骤操作 - 加入表格、计算产品数量、按数量排序并使用 LIMIT :

SELECT i.user_name,count(p.product_id) as cnt_products 
FROM invoice i
JOIN invoice_products ip
 ON(i.invoice_id = ip.invoice_id)
JOIN product p
 ON(p.product_id = ip.product_id)
WHERE i.shop_id = 1
GROUP BY i.user_name 
ORDER BY cnt_products DESC
LIMIT 5

关于mysql - 大多数产品如何获得用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314516/

相关文章:

c# - 在一个事务范围内处理多个数据库连接

php - laravel 具有内部关系的多对多关系

java - 无法将 SQL 结果写入 Java 文件

java - 在 MySQL 工作台上运行良好的连接命令的 MySQLSyntaxErrorException

php - mysql避免从2个条件显示两次结果

php - 更新 SQL 中的单行

sql - phpmyadmin 显示 myisam 而不是 innodb

php - mysql查询自增

mysql - 包含三张表连接的查询不起作用?

php - 如何计算在另一个表中具有特定属性的表中的行数