mysql - SQL查询返回错误的结果集

标签 mysql sql

我有这张表:

columns:
Id  product_id name status update_date

1   1   prod1   bought  2016-04-20 10:10:10
2   1   prod1   sold    2016-04-22 12:25:00
3   1   prod1   sold    2016-06-03 09:42:15

我想执行这个查询:

select id,name,status,max(update_date) from product group by name,status;

我得到:

1   prod1   bought  2016-04-20 10:10:10
2   prod1   sold    2016-06-03 09:42:15

对于结果集中的第二行,我必须得到:

3   prod1   sold    2016-06-03 09:42:15

而不是:2 prod1 已于 2016-06-03 09:42:15 出售!

最佳答案

试试这个;)

select id,name,status,update_date from product
where (name, status, update_date) in (
    select name,status,max(update_date) from product
    group by name,status
)

或者

select t1.id, t1.name, t1.status, t1.update_date
from product t1
inner join (
    select name,status,max(update_date) as update_date from product
    group by name,status
) t2 on t1.name = t2.name and t1.status = t2.status and t1.update_date = t2.update_date

关于mysql - SQL查询返回错误的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37610169/

相关文章:

sql - 使用 Teradata 系统表获取列类型

sql - 运行查询时,MySQL挂起。如何提高效率?

mysql - 查询在 PhpMyadmin 上有效,但在我的服务器上无效

php - 带有多个json对象的json对象

mysql查询当外键关系时用单个查询删除多个表

mysql - 何时在MySQL中使用单引号,双引号和反引号

mysql - 对 MySQL 中 GROUP_CONCAT 的每个元素执行 LIKE 操作

c# - Linq 在一个表中获取父项和子项并在另一个表中计算它们的值

mysql - INSERT SELECT MAX 与文本连接

mysql - 创建数据库 View ,其中每一行均取前一行的值