[英]SQL N items per Group in SQL || SQL Sub Query Limit
I want to Select join with cats
table with data
.我想选择与带有
data
cats
表连接。 Join with cats.id = data.cat_id
.加入
cats.id = data.cat_id
。 with limit 3 data
table row for each unique category id cat.id
每个唯一类别 id
cat.id
限制 3 个data
表行
Table: cats
表:
cats
id | parent_id | name
---+-----------+--------
1 | 0 | Games
2 | 0 | Music
3 | 0 | Apps
Table: data
表:
data
--------------------------
id | cat_id | data
---+---------+------------
1 | 1 | Cat1 Data1
2 | 1 | Cat1 Data2
3 | 1 | Cat1 Data3
4 | 1 | Cat1 Data4
---+---------+------------
5 | 2 | Cat2 Data1
6 | 2 | Cat2 Data2
7 | 2 | Cat2 Data3
8 | 2 | Cat3 Data4
---+---------+------------
9 | 3 | Cat3 Data1
10 | 3 | Cat3 Data2
11 | 3 | Cat3 Data3
12 | 3 | Cat3 Data4
I want like bellow.我想要像下面这样。 For one
cats
per row select three data
row select.对于每行一只
cats
,选择三个data
行选择。
category | data
----------+------------
Games | Cat1 Data1
Games | Cat1 Data2
Games | Cat1 Data3
----------+------------
Music | Cat2 Data1
Music | Cat2 Data2
Music | Cat2 Data3
----------+------------
Apps | Cat3 Data1
Apps | Cat3 Data2
Apps | Cat3 Data3
if this not posiable group_concat
with ,
also work for me.如果这不是 posiable
group_concat
with ,
也适用于我。 I will split it with php.我将用 php 拆分它。
cat_name | data
----------+-------------------------------------
Book | Cat1 Data1, Cat1 Data2, Cat1 Data3
Music | Cat2 Data1, Cat2 Data2, Cat2 Data3
Game | Cat3 Data1, Cat3 Data2, Cat3 Data3
Hope this solve your希望这能解决您的
SELECT
sq.category,
sq.data
FROM (
SELECT
DATA.*,
cats.name AS category,
row_number() over(PARTITION BY cat_id ORDER BY cat_id DESC) AS ROW_COUNT FROM `data`
INNER JOIN cats ON data.cat_id = cats.id
) AS sq
WHERE
ROW_COUNT <= 3
here in the query ... ... ROW_COUNT <= 3 you may set limit for selection.这里在查询中...... ROW_COUNT <= 3您可以设置选择限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.