gpt4 book ai didi

Mysql:从每只猫[一对多关系]得到2个结果

转载 作者:可可西里 更新时间:2023-11-01 06:52:48 24 4
gpt4 key购买 nike

我正在寻找获得结果的最佳方法,数据库包含超过 100000 个帖子和超过 100000 个猫

这是我的表格

-----------------
- id | name |
-----------------
- 1 | x |
-----------------
- 2 | y |
-----------------

发布

--------------------------------------
- id | cat_id | title | content |
--------------------------------------
- 1 | 1 | Post 1 | .. . . .|
--------------------------------------
- 2 | 1 | Post 2 | . . . . .|
--------------------------------------
- 3 | 2 | Post 3 | .. . . .|
--------------------------------------
- 4 | 1 | Post 4 | . . . . .|
--------------------------------------
- 5 | 1 | Post 5 | .. . . .|
--------------------------------------
- 6 | 2 | Post 6 | . . . . .|
--------------------------------------
- 7 | 1 | Post 7 | .. . . .|
--------------------------------------
- 8 | 2 | Post 8 | . . . . .|
--------------------------------------

这是我想要得到的结果

结果

--------------------------------------
-Postid | cat_id | title | content |
--------------------------------------
- 1 | 1 | Post 1 | .. . . .|
--------------------------------------
- 2 | 1 | Post 2 | . . . . .|
--------------------------------------
- 3 | 2 | Post 3 | .. . . .|
--------------------------------------
- 6 | 2 | Post 4 | . . . . .|
--------------------------------------

这是我刚写的查询,但我正在寻找最佳查询

SELECT
*
From
post
WHERE posts.cat_id = 1 limit 2

UNION

SELECT
*
From
post
WHERE posts.cat_id = 2 limit 2

如果我想在一次查询中从 10 只猫中获取结果会怎样

最佳答案

set @i := 0, @cat_id = 0;
select
post.id as Postid,
cat_id,
title,
content
from
post
inner join (
select
id,
case
when @cat_id = cat_id then @i := @i + 1
else @i := 1
end as i,
case when @cat_id != cat_id then @cat_id := cat_id end
from (
select id, cat_id
from post
-- where cat_id in (1, 2) uncomment this to limit categories
order by cat_id
) a
) s on s.id = post.id
where i <= 2
order by cat_id, post.id

问题标题说的是每个类别,而问题说的是 10 个类别,所以我对 where 子句进行了注释,使其成为可选的。

关于Mysql:从每只猫[一对多关系]得到2个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com