gpt4 book ai didi

mysql - 重复的行

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

SQL 查询:

SELECT 
T.*,
U.nick AS author_nick,
P.id AS post_id,
P.name AS post_name,
P.author AS post_author_id,
P.date AS post_date,
U2.nick AS post_author
FROM
zero_topics T
LEFT JOIN
zero_posts P
ON
T.id = P.topic_id
LEFT JOIN
zero_players U
ON
T.author = U.uuid
LEFT JOIN
zero_players U2
ON
P.author = U2.uuid
ORDER BY
CASE
WHEN P.date is null THEN T.date
ELSE P.date
END DESC

输出:

output

主题:

topics

帖子:

posts

问题:为什么我有重复的主题 ID 22?我在 mysql 中有两个主题(id 22 和 23)和两个帖子(id 24 和 25)。我只想查看最后一篇文章的主题。

最佳答案

如果联接产生多个结果,而您最多只需要一个结果,则必须重写联接和/或过滤条件才能提供该结果。如果您只想要所有结果中的最新结果,一旦使用几次,这是可行的并且相当简单。

select  a.Data, b.Data
from Table1 a
left join Table2 b
on b.JoinValue = a.JoinValue
and b.DateField =(
select Max( DateField )
from Table2
where JoinValue = b.JoinValue );

相关子查询提取一个日期,它是所有可连接候选者中最高(最近)的值。然后,该行就成为参与连接的行——或者,当然,如果根本没有候选者,则什么也没有。这是我经常使用的模式。

关于mysql - 重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285158/

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