如何使用两个重复的变量过滤mysql

问题描述 投票:0回答:1

我有这样的桌子:

id  name    start_date  
1   abc     2019-12-27
1   asd     2019-12-27
1   dwq     2019-12-27
1   sre     2019-12-27
1   ers     2019-12-27
1   fas     2019-12-23
1   abc     2019-12-23
1   dwq     2019-12-23
2   wda     2019-12-23
2   wqw     2019-12-23
2   rew     2019-12-19
2   sdf     2019-12-19
2   vfd     2019-12-19
2   asd     2019-12-19

而且我想以某种方式对其进行过滤,以获取ID为1且日期最高的所有记录。当我这样做时:

SELECT id,MAX(start_date),name FROM table1 WHERE id=1 GROUP BY name;

我得到了这个结果:

1   abc     2019-12-27
1   asd     2019-12-27
1   dwq     2019-12-27
1   sre     2019-12-27
1   ers     2019-12-27
1   fas     2019-12-23

[还有一个名为'fas'的行,我猜它显示出来是因为该名称在2019-12-23日期是唯一的。如何正确过滤?

mysql
1个回答
0
投票
SELECT [DISTINCT] *
FROM table1 
WHERE id = 1
  AND start_date = ( SELECT MAX(start_date)
                     FROM table1
                     WHERE id = 1 )
© www.soinside.com 2019 - 2024. All rights reserved.