gpt4 book ai didi

mysql - 从mysql中的多个表中获取数据

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

我的目标是从下表中获取 - 用户的唯一组名称和 ID、用户组的最新评论、用户组的最新“完成”文章、完成文章的总和以及文章总数。基本上内容在底部表格中呈现。

problem

到目前为止我已成功从组表和文章中获取数据,但无法获取最新评论。

这是我的查询

SELECT  `groups`.`name` ,  `groups`.`id` , (

SELECT MAX( `articles`.`written` )
FROM `articles`
WHERE `group` = `groups`.`id`
AND `articles`.`done` = '1'
) AS latestArt, (

SELECT MAX( `comments`.`date_added` )
FROM `comments`
WHERE `comments`.`article_id` = `a`.`id`
AND `comments`.`active` = '1'
) AS latestComm, SUM( `a`.`done` = '1' ) articlesAchieved, COUNT( `a`.`id` ) AS totalArticles
FROM `groups`
LEFT JOIN `articles` AS `a` ON `a`.`group` = `groups`.`id`
LEFT JOIN `comments` AS `c` ON `c`.`note_id` = `a`.`id`
WHERE `groups`.`user_id` = '6'
AND `n`.`active` = '1'
GROUP BY `groups`.`id`

我还尝试通过将所有内容连接到 article 表来获取数据,但我也没有成功:(

最佳答案

已更新您的查询可能如下所示

SELECT g.id group_id, g.name group_name,
a.last_written, a.total_articles, a.total_done,
c.last_comment
FROM groups g LEFT JOIN
(
SELECT `group`,
MAX(CASE WHEN done = 1 THEN written END) last_written,
COUNT(*) total_articles,
SUM(done) total_done
FROM articles
WHERE active = 1
AND user_id = 1
GROUP BY `group`
) a
ON g.id = a.`group` LEFT JOIN
(
SELECT a.`group`,
MAX(date_added) last_comment
FROM commants c JOIN articles a
ON c.article_id = a.id
WHERE a.active = 1
AND a.user_id = 1
GROUP BY a.`group`
) c
ON g.id = c.`group`
WHERE user_id = 1

关于mysql - 从mysql中的多个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18566454/

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