gpt4 book ai didi

sql - 我需要将专为 MySQL 设计的查询翻译为适用于 SQL Server 2005

转载 作者:行者123 更新时间:2023-11-29 09:19:36 27 4
gpt4 key购买 nike

我已经花了一整天的时间来解决这个问题,但没有弄清楚。我希望有人可以帮助我将以下 MySQL 查询转换为适用于 SQL Server 2005:

SELECT MAX ( messages.date ) AS maxdate,  
topics.id AS topicid, topics.*, users.*
FROM messages, topics, users WHERE messages.topic_id
= topics.id AND topics.user_id = users.id AND
topics.forum_id = " . $forumid . " GROUP BY
messages.topic_id ORDER BY maxdate DESC

$forumid 是在以下 VB.NET 代码隐藏代码中定义的 QueryString 值:

forumName.Text = "<a href='ViewForum.aspx?forumid=" & row.id & "'>" & row.name & "</a>"

如果您能提供帮助,我将不胜感激。

最佳答案

有两个问题。首先,正如 Andomar 指出的那样,您不能在 ORDER BY 中引用列别名。

其次,如果您正在执行聚合(如 MAX),则无法选择不在 GROUP BY 中的任何字段,除非它们也被聚合。

我想这就是你想要的:

SELECT m.maxdate, t.*, u.*
FROM (
SELECT topic_id, MAX(messages.date) AS maxdate
FROM messages
GROUP BY topic_id
) AS m
INNER JOIN topics t ON t.id = m.topic_id
INNER JOIN users u ON t.user_id = u.id
WHERE t.forum_id = " . $forumid . "
ORDER BY m.maxdate DESC

关于sql - 我需要将专为 MySQL 设计的查询翻译为适用于 SQL Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613451/

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