我是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日期的第一行。如何显示包含相同最大日期的两个/所有行?
非常感谢你:),
克里斯蒂。
答案 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;
事实上,这真让我感到讨厌......试图让事情更顺畅。敬请关注:)