mysql - 我正在尝试从 2 个表中访问数据库中的项目,但每个组最多只能获得 3 个
问题描述
我正在使用 2 个表进行 mysql 查询,并且我试图每组最多只能获得 3 行。
例如,如果表 1 是部门,表 2 是类别。假设一个部门是服装,另一个部门是珠宝。如果名为 Clothing 的部门有 5 个类别(鞋子、牛仔裤、内衣、袜子、运动衫),而部门珠宝有 4 个类别(戒指、项链、手镯、耳环),我该如何为每个部门返回最多 3 个类别。
我希望输出返回
Department Category
______________________________________
Clothing Shoes
Clothing Jeans
Clothing Underware
Jewellery Rings
Jewellery Necklaces
Jewellery Bracelets
我只想为每个部门返回最多 3 个类别。
这是我正在尝试做的一个示例,但数据库中有更多的部门和类别。我将按类别和部门进行排序。此查询用于向用户显示一小段信息,因此稍后我将不得不访问所有部门和类别。我已经可以用 mysql 做到这一点,但我不知道如何只获得 3 个类别 MAX
解决方案
一种可能性是使用带有 a和 use的简单SELECT
语句将数据连接在一起。例如:LIMIT
UNION
Departments Table:
+----+--------------+
| id | name |
+----+--------------+
| 1 | jewelry |
| 2 | clothing |
+----+--------------+
MySQL:
(SELECT * from categories WHERE department_id=1 LIMIT 3)
UNION
(SELECT * from categories WHERE department_id=2 LIMIT 3)
但是,如果您有很多不同的部门,您将需要一种更强大的方法。在这种情况下,此答案将对您有所帮助:https ://stackoverflow.com/a/10516530/11182541
推荐阅读
- javascript - 复制 URL 参数并将它们注入另一个 URL
- python - ModuleNotFoundError:没有名为“wtforms”的模块
- azure-devops-pipelines - 在 Azure devops 管道中设置变量后无法立即打印该变量
- python - TfidfVectorizer:获取 features_name 的顶级字典和值
- sql - 如何在 BigQuery 中使用 IF 脚本检查查询结果?
- javascript - 如何在 HERE 地图中使用 lineString 坐标?
- java - Java的“单文件模式”是否有可能拥有多个源文件?
- java - IntelliJ IDEA 看不到从子项目中的 protobuf 文件生成的类
- android - OTP 自动检测在 Firebase 电话号码身份验证中不起作用
- r - 图表内的文字