【问题标题】:SQL Duplicate result messagesSQL 重复结果消息
【发布时间】:2016-01-27 18:35:32
【问题描述】:

我有 SQL 查询:

这是我实际使用的代码:

SELECT m.message_id, m.message_subject, m.message_message, m.message_smileys, m.message_datestamp, u.user_id, u.user_name, u.user_avatar
            FROM ".DB_MESSAGES." m
                LEFT JOIN (
                    SELECT user_id, user_name, user_avatar 
                    FROM ".DB_USERS." 
                ) u ON m.message_from=u.user_id

            WHERE message_folder='0' AND ((message_to='".$userdata['user_id']."' AND message_from='2')
            OR (message_to='2' AND message_from='".$userdata['user_id']."'))
            ORDER BY message_datestamp

结果:

Result Image

我需要什么:

Needed Result Image

数据库:prntscr.com/9vm1s4

示例:
我:你好,12:10 AM
他:你好,12:20 AM
他:你有吗?中午 12:22
我: 下午 1:10

有什么建议吗?

谢谢你

【问题讨论】:

  • 这应该回答你的问题(可能重复):stackoverflow.com/questions/3128043/…
  • 提供更多信息的回复将提供更多信息。帮助我们帮助您。
  • DB: link 我是基于 PHP Fusion 的简单聊天。我需要按时间顺序显示我给他和他给我的消息。示例:me: 你好 12:10 AM,he: Hi 12:20AM,he: 你有吗?中午 12:22,我: 下午 1:10
  • 欢迎来到 SO。您的问题被否决了,因为它没有包含足够有用的细节。请花点时间阅读这两个链接,如果您仍在寻求帮助,请考虑编辑您的问题。 stackoverflow.com/help/how-to-ask 和,关于图像,meta.stackoverflow.com/a/285557/5790584

标签: sql chat messages


【解决方案1】:

尝试在ORDER BY 部分之前添加GROUP BY m.message_from

【讨论】:

  • 这将导致错误,因为选择列表包含其他列。至少,它会在 SQL Server 中。
  • 现在我只得到了 2 个结果......但我需要来自 DB 的所有结果
  • OP 可以通过将列添加到select 来轻松解决此问题
  • @MarekBrutusGajdoš 在“需要”图像中只有 2 个,请解释更多您需要什么
  • 当我制作“需要”的图像时。我用检查员删除了重复的消息。在我的数据库中有很多消息,所有消息都有发件人 ID 和收件人 ID 这是我的全部结果:link
【解决方案2】:

PHP Fusion 将消息添加到重复的数据库。

这是我实际使用的代码:

SELECT m.message_id, m.message_subject, m.message_message, m.message_smileys, m.message_datestamp, u.user_id, u.user_name, u.user_avatar
            FROM ".DB_MESSAGES." m
                LEFT JOIN (
                    SELECT user_id, user_name, user_avatar 
                    FROM ".DB_USERS." 
                ) u ON m.message_from=u.user_id

            WHERE message_folder='0' AND ((message_to='".$userdata['user_id']."' AND message_from='2')
            OR (message_to='2' AND message_from='".$userdata['user_id']."'))
            ORDER BY message_datestamp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2013-04-22
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多