php - 通过内部连接和最大 ID 获取最高 ID

标签 php mysql sql database

我有两张 table ,对话和消息, 我想做的是从对话到消息进行内部连接。

这是我的查询:

    SELECT 
    messages.msg,
    messages.`read`,
    conversations.userid,
    conversations.contactid

    FROM conversations 
        INNER JOIN messages ON 
        conversations.id = messages.convId
    WHERE conversations.id IN(443,444)

现在一切正常,但最后一件事是在我使用的内部连接中

conversations.id = messages.convId

我只想获得最高的 id,例如:

 AND MAX(messages.id)

但这不起作用

编辑: 我试过一次用:

LEFT JOIN messages 
    ON conversations.id = messages.convId 
        AND messages.id = MAX(messages.id) 

但我收到一条错误消息:无效使用组功能。

最佳答案

编辑

这行得通!

SELECT conversations.*, m1.* 
FROM conversations 
LEFT JOIN messages m1
    ON conversations.id = m1.cid 
    AND m1.id = (
            SELECT MAX(m2.id) 
            FROM messages m2 
            WHERE m2.cid = conversations.id
        )

关于php - 通过内部连接和最大 ID 获取最高 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760871/

相关文章:

javascript - GA 基础知识 – 基于动态 PHP 的网站中页面浏览量跟踪的最佳实践

php - Chrome 不会插入表格,在 IE 上工作正常

php - 仅显示当前帖子的分类术语 (Drupal)

MySQL - 从每行的关联表中获取显示 COUNT() 的列

php - PHP 和 MySQL 中相同查询的不同 SQL 结果

php - Bootstrap 3 Navbar 不会在移动设备上折叠

使用 NHibernate 生成 MySql 模式

mysql - 无法使用 DBI 将记录插入 MySQL 数据库

mysql - 在带有联接的查询中使用查询的多个结果

sql - 建立会计试算平衡报告绩效问题