我试图使用另一个表中的参数更改“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/