1

我是 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 日期的第一行。如何显示包含相同最大日期的两行/所有行?

4

2 回答 2

3

尽量不要用“日期”之类的保留字命名列,这可能会给您带来问题。你可以像这样做你想做的事:

SELECT * FROM evaluari WHERE magazin = 186 AND date = (SELECT MAX(date) from evaluari WHERE magazin = 186)
于 2014-03-02T15:51:55.193 回答
1

可能,不是最佳的,但在第一次挥杆时,你可以这样做

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

事实上,这真的让我觉得很讨厌……试图找出更平滑的东西。敬请关注 :)

于 2014-03-02T15:49:04.750 回答