gpt4 book ai didi

子查询中的Mysql最大日期

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

我不知道如何让这个子查询工作以获取该行的最新日期。

SELECT Thread_Heading.*, Thread_Articles.*, Thread_ArticlesPost.* 
FROM Thread_Heading
LEFT JOIN Thread_Articles
ON Thread_Articles.Thread_Article_Head_id=Thread_Heading.Thread_Head_id
LEFT JOIN
(
SELECT Thread_ArticlesPost.*
FROM Thread_ArticlesPost
ORDER BY Thread_ArticlePost_DT DESC
) Thread_ArticlesPost
ON Thread_ArticlesPost.Thread_ArticlePost_Article_id=Thread_Articles.Thread_Article_id
WHERE Thread_Head_Level = '5'
GROUP BY Thread_Heading.Thread_Head_id
ORDER BY Thread_ArticlePost_DT DESC

我需要按每篇主题文章的最新帖子来排序文章发布日期。对 sql 和 php 相当陌生,我只是无法解决这个问题,我们将不胜感激。

T

ABLE: Thread_Heading | 
Thread_Head_id
Thread_Head_Name
Thread_Head_Type
Thread_Head_Creator
Thread_Head_Date
Thread_Head_Level

TABLE: Thread_Articles |
Thread_Article_id
Thread_Article_Head_id
Thread_Article_Creator
Thread_Article_DT
Thread_Article_Level
Thread_Article_Type
Thread_Article_Title

TABLE: Thread_ArticlesPost |
Thread_ArticlePost_id
Thread_ArticlePost_Head_id
Thread_ArticlePost_Article_id
Thread_ArticlePost_Creator
Thread_ArticlePost_DT
Thread_ArticlePost_Level
Thread_ArticlePost_Type
Thread_ArticlePost_Title
Thread_ArticlePost_Content

我需要像这样显示日期:

Head Name | Article title | ORDER BY LATEST ArticlePost DT | ArticlePost Creator

我使用左连接的原因是即使没有文章或文章回复也能获取左数据。

感谢您的帮助。

感谢 Blue 用它来显示数据

选择*
来自
( SELECT th.Thread_Head_Name,
ta., tp1.maxdate, tp2. FROM Thread_Heading 日 LEFT JOIN Thread_Articles ta ON th.Thread_Head_id = ta.Thread_Article_Head_id 左连接
( 选择最大(Thread_ArticlePost_DT)最大日期,
Thread_ArticlesPost.* 来自 Thread_ArticlesPost 按 T​​hread_ArticlePost_Article_id 分组 ) tp1 ON tp1.Thread_ArticlePost_Article_id=ta.Thread_Article_id
左加入 Thread_ArticlesPost tp2 ON tp1.Thread_ArticlePost_Article_id = tp2.Thread_ArticlePost_Article_id AND tp1.maxdate = tp2.Thread_ArticlePost_DT
WHERE th.Thread_Head_Level = '5' ORDER BY tp1.maxdate DESC) m按 T​​hread_Head_Name 分组按 T​​hread_ArticlePost_DT DESC 排序

最佳答案

在没有看到完整的表模式的情况下,您会想要做类似这样的事情:

SELECT th.*, ta.*, tp.* 
FROM Thread_Heading th
LEFT JOIN Thread_Articles ta
ON th.Thread_Head_id = ta.Thread_Article_Head_id
LEFT JOIN
(
SELECT max(Thread_ArticlePost_DT) maxDate, Thread_ArticlesPost.*
FROM Thread_ArticlesPost
GROUP BY Thread_ArticlePost_Article_id
) Thread_ArticlesPost tp
ON tp.Thread_ArticlePost_Article_id=ta.Thread_Article_id
WHERE Thread_Head_Level = '5'
GROUP BY th.Thread_Head_id
ORDER BY tp.maxdate DESC

根据您的编辑,以下应返回您想要的数据:

SELECT th.Thread_Head_Name, 
ta.Thread_Article_Title,
tp1.maxdate,
tp2.Thread_ArticlePost_Creator
FROM Thread_Heading th
LEFT JOIN Thread_Articles ta
ON th.Thread_Head_id = ta.Thread_Article_Head_id
LEFT JOIN
(
SELECT max(Thread_ArticlePost_DT) maxDate,
Thread_ArticlesPost.Thread_ArticlePost_Article_id
FROM Thread_ArticlesPost
GROUP BY Thread_ArticlePost_Article_id
) tp1
ON tp1.Thread_ArticlePost_Article_id=ta.Thread_Article_id
LEFT JOIN Thread_ArticlesPost tp2
ON tp1.Thread_ArticlePost_Article_id = tp2.Thread_ArticlePost_Article_id
AND tp1.maxdate = tp2.Thread_ArticlePost_DT
WHERE th.Thread_Head_Level = '5'
ORDER BY tp1.maxdate DESC

编辑 #2,根据您的评论,我认为以下查询应该可以解决所有遗留问题:

SELECT th.Thread_Head_id,
th.Thread_Head_Name,
ta.Thread_Article_Title,
tp.Thread_ArticlePost_Creator,
tap.MaxPostDate
FROM Thread_Heading th
LEFT JOIN
(
SELECT max(ta.Thread_Article_DT) MaxArticleDate,
ta.Thread_Article_Head_id,
max(tp.Thread_ArticlePost_DT) MaxPostDate
FROM Thread_Articles ta
LEFT JOIN Thread_ArticlesPost tp
ON ta.Thread_Article_id = tp.Thread_ArticlePost_Article_id
GROUP BY Thread_Article_Head_id
) tap
ON th.Thread_Head_id = tap.Thread_Article_Head_id
LEFT JOIN Thread_Articles ta
ON tap.Thread_Article_Head_id = ta.Thread_Article_Head_id
AND tap.MaxArticleDate = ta.Thread_Article_DT
LEFT JOIN Thread_ArticlesPost tp
ON tap.MaxPostDate = tp.Thread_ArticlePost_DT
WHERE th.Thread_Head_Level = '5'
ORDER BY MaxPostDate desc

参见 SQL Fiddle With Demo

关于子查询中的Mysql最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100724/

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