gpt4 book ai didi

MYSQL通过选择要显示的元素来加入排序和分组

转载 作者:行者123 更新时间:2023-11-29 00:48:00 25 4
gpt4 key购买 nike

我有 2 个表,evt 和 content。 content 是指向 evt 的链接,抛出列 content_evt_fk(为使其更简单,您可以用文章替换 evt,用博客数据库的评论替换 content)。

我想做的是在一个查询中包含 evt id、evt 名称、与其相关的内容数量,以及插入的最后 的 id 和文本与此事件相关的内容。

代码如下:

    SELECT 
`evt`.`evt_id`,
`evt`.`name`,
`content`.`content_id`,
`content`.`content_text`,
count(*) as `evt_cont`
FROM
`t_evt` as `evt`,
`t_content` AS `content`
WHERE
`evt`.`evt_id` = `content`.`content_evt_fk`
group by `evt_id`
ORDER BY `content`.`content_id` DESC

问题是发送的 content_text 不是最后插入的内容,而是第一个插入行的内容。我尝试在查询中放入一些 Max(),但没有用。

有什么线索吗?

编辑:数据样本

假设我有一个名为“pocket”的 evt 和 3 个相关内容,按此顺序输入(“1-cake”、“2-chocolate”、“3-sweets”)。

我的查询结果是

evt_id  name    content_id  content_text    evt_cont
149 pocket 112 1-cake 3

我想要的:

  evt_id    name    content_id  content_text    evt_cont
149 pocket 115 3-sweets 3

最佳答案

我没有使用 MySql,因此可能有更好的方法来执行此操作。最简单的方法是通过键(此处为 content_evt_fk)将 max(列表示感兴趣顺序,此处为 content_id)的派生表连接到原始表,过滤掉除最后一个条目之外的所有条目。

SELECT 
evt.evt_id,
evt.name,
content.content_id,
content.content_text
FROM t_evt as evt
INNER JOIN t_content AS content
ON evt.evt_id = content.content_evt_fk
INNER JOIN
(
select content_evt_fk, max(t_content.content_id) content_id
from t_content
group by content_evt_fk
) last_content
ON content.content_id = last_content.content_id
-- This is not necessary here, but if you do this sort of thing on
-- columns other than id, you will have to join this part too
and content.content_evt_fk = last_content.content_evt_fk

关于MYSQL通过选择要显示的元素来加入排序和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754037/

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