我正在尝试创建一个查询,为第一个类别选择一个项目,为第二个类别选择两个项目,为其他项目选择一个项目。
问题是它必须是一个查询。我认为这是可能的,但我无法理解。
答案 0 :(得分:1)
听起来你需要SQL UNION
operator。正如评论中所提到的,我们需要知道你的表格是什么样的,以提供更多的帮助。
答案 1 :(得分:0)
此:
SELECT *
FROM (SELECT i.*
FROM ITEM i
WHERE i.categoryid = 1
LIMIT 1),
(SELECT i.*
FROM ITEM i
WHERE i.categoryid = 2
LIMIT 2),
(SELECT i.*
FROM ITEM i
WHERE i.categoryid = 3
LIMIT 2)
...将为第一类选择一项,为第二类选择两项,为第三类选择2项。我使用UNION ALL
而不是UNION
,因为它不会删除重复项,因此速度更快。如果不了解有关数据模型的更多信息(涉及的表格),很难说哪种方法最有效。