表中的Mysql连接限制
我正在进行下一个mysql查询表中的Mysql连接限制,mysql,join,limit,Mysql,Join,Limit,我正在进行下一个mysql查询 SELECT `i`.`id_item`, `c`.`id_category` FROM `items` AS `i` LEFT JOIN `categories` AS `c` ON c.id_category = i.id_category WHERE (i.id_page = '7') ORDER BY `c`.`id_category` ASC, `i`.`id_item` ASC 项目可以属于某个类别,也可以不为其定义任何类别。
SELECT
`i`.`id_item`,
`c`.`id_category`
FROM `items` AS `i`
LEFT JOIN `categories` AS `c` ON c.id_category = i.id_category
WHERE (i.id_page = '7')
ORDER BY `c`.`id_category` ASC, `i`.`id_item` ASC
项目可以属于某个类别,也可以不为其定义任何类别。
我需要将items表的结果限制为每个类别的X个随机值,或者如果没有定义类别,则限制为X个随机值。我该怎么做?尝试使用Group By,然后使用limit x将其限制为x值limit x。我使用的是x=5
SELECT
`i`.`id_item`,
`c`.`id_category`
FROM `items` AS `i`
LEFT JOIN `categories` AS `c` ON c.id_category = i.id_category
WHERE (i.id_page = '7') GROUP BY i.id_category,i.id_item
ORDER BY `c`.`id_category` ASC, `i`.`id_item` ASC LIMIT 5
这将“按i.id_类别分组”的每个类别限制为1个项目,或者如果我使用“按i.id_类别分组,i.id_项目”与否,则每个类别需要5个项目,X=5,假设该类别有10个项目。现在两个表中必须有一列,对于这10个条目,或者至少对于其中一些条目,该列也会发生变化。您也需要使用它根据您的结果进行分组。如果使用select*,则可以找到此列。然后在group by子句中的i.id_category(以逗号分隔)之后使用此列。如果在此上使用group by company_id,它将只返回一行,尽管有多行。但是看看状态,它也在变化,所以你也需要按它分组,也就是说,按公司分组(1244)1|; 8 812444 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4)身份身份身份,身份身份身份身份,身份身份身份身份身份身份身份身份身份,公司公司公司的公司的公司的身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份识别号号号号数数数数数数数数数数数数数数数数数数数数数(1244 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4;3688|