mysql - 更改 MySQL 请求 SELECT 中的参数

标签 mysql

我试图使用另一个表中的参数更改“from_user”,但它不起作用,但是当我使用同一个表时,它就像一个魅力:

 SELECT from_user, message_contents, message_read, to_user, date 
 FROM table1 
 WHERE date IN ( 
 SELECT MAX( date ) 
 FROM table1 
 WHERE to_user = 1 GROUP BY from_user 
 ) 
 ORDER BY from_user ASC , date DESC

但是这个只显示一条记录,而不是所有最新的记录:

 SELECT table2.`display_name`, message_contents, message_read, to_user, date 
 FROM table1, table2
 WHERE table1.`from_user` = table2.`ID`
 AND date IN ( SELECT MAX( date ) 
 FROM table1
 WHERE to_user = 1 GROUP BY from_user 
 ) 
 ORDER BY from_user ASC , date DESC

任何人都可以帮助更改“from_user”与 table2.display_name 参数,但从 mySQL 获取所有最近的记录吗?

最佳答案

您正在连接 table1.from_user = table2.id 上的两个表 因此,如果您不希望表二影响行数,则可以进行如下查询:

SELECT 
     table1.from_user,
     table2.`display_name`, 
     message_contents, 
     message_read, 
     to_user, 
     date 
FROM table1
LEFT JOIN table2 ON table1.`from_user` = table2.`ID`
WHERE 
     date IN (SELECT MAX(date) FROM table1 WHERE to_user = 1 GROUP BY from_user) 
ORDER BY from_user ASC , date DESC

我还在 select 子句中添加了 table1.from_user ,这将帮助您查看没有显示名称的 from 用户。

关于mysql - 更改 MySQL 请求 SELECT 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246213/

相关文章:

mysql - mysql中的运行平均值

mysql - 设计数据库时,重复的表或留空字段有多糟糕?

mysql - 子查询只返回一个值

mysql - 如何使用 Bookshelf.js 编写条件更新查询?

mysql - 如何在 MySQL 中使用 Hibernate HQL 和 AVG-Function

mysql - 选择特定列具有最高值的行

mysql - 通过 openquery 在 SQL Server 中查询 MySql - "0000-00-00"行未显示

当值为空或不为空时,MySql 在触发器中删除

mysql - 临时表拖垮数据库——如何优化?

java - 异步任务中的json空指针错误