【发布时间】:2013-03-05 14:34:27
【问题描述】:
我构建了以下查询:
(选择 privatemsgs.id, privatemsgs.useradn, privatemsgs.useraid, privatemsgs.title, privatemsgs.created, privatemsgs.timee, privatemsgs.isread, u.photo AS creatorphoto, privatemsgs.relatedto 来自私人信息 左连接 用户 AS u ON(privatemsgs.useraid = u.id) WHERE userbid='5' AND relatedto=0 和 bdel=1) 联合所有 (选择 privatemsgs.id, privatemsgs.useradn, privatemsgs.useraid, privatemsgs.title, privatemsgs.created, privatemsgs.timee, privatemsgs.isread, u.photo AS creatorphoto, rel.relatedto FROM privatemsgs AS rel 加入 privatemsgs ON(rel.relatedto = privatemsgs.id) 左连接 用户 AS u ON(rel.useraid = u.id) WHERE rel.userbid='5') 按 ID 分组 ORDER BY timee DESC此查询从表中选择所有 Privatemsg,并像邮件一样,FOR EX:
如果我向用户 b 发送了一条消息,并且用户 b 回复了我。我想在每个用户的收件箱和发件箱中显示消息。
对标记为“相关”主消息 ID 的私有消息的评论。
查询有效,但显示中的消息重复(多次显示相同的消息) 我试图做“GROUP BY id”来修复它,但我得到了错误:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“GROUP BY id ORDER BY timee DESC”附近使用正确的语法谢谢!!
【问题讨论】:
-
在错误消息中显示
GROUP BY relatedto ORDER BY timee DESC- 不应该是ORDER BY time DESC吗? -
GROUP BY relatedto甚至不在您显示的查询中。 -
我不能输入任何 GROUP BY 语句(不是 id 和不相关的)我已经编辑了问题
-
要使用
GROUP BY(假设您需要它),您可能需要将UNION包装到任何外部查询中并在那里使用GROUP BY。 -
另外,您是否尝试过
UNION而不是您的UNION ALL?