选择具有最大日期的多行

时间:2014-03-02 15:45:33

标签: mysql sql maxdate

我是mysql的新手,所以请帮我解决这个问题。

我有一个包含以下列的表:

nr  |   date   |  hour  |  user  |  shop  |  brand  |  categ  | product | price | promo
183   02/03/14   17:06    cristi    186     brand1    categ 1    prod 1    299     no
184   02/03/14   17:06    cristi    186     brand2    categ 2    prod 2    399     yes
184   01/03/14   17:06    cristi    186     brand3    categ 3    prod 3    199     no

我使用的查询是

SELECT * 
FROM evaluari 
WHERE magazin = %s HAVING MAX(data)

其中“s”是商店ID(186)。

但只返回包含02/03/14日期的第一行。如何显示包含相同最大日期的两个/所有行?

非常感谢你:),

克里斯蒂。

2 个答案:

答案 0 :(得分:3)

尽量不要使用像“date”这样的保留字来命名列,这可能会导致问题。 你可以这样做你想做的事情:

SELECT * FROM evaluari WHERE magazin = 186 AND date = (SELECT MAX(date) from evaluari WHERE magazin = 186)

答案 1 :(得分:1)

可能不是最佳,但在第一次开始时,你可以做到这一点

 SELECT * FROM evaluari 
   where date IN (SELECT date FROM evaluari WHERE magazin = %s HAVING MAX(date)) 
          AND magazin = %s;

事实上,这真让我感到讨厌......试图让事情更顺畅。敬请关注:)