从mysql中选择三重唯一(或不同)值

从mysql中选择三重唯一(或不同)值,mysql,distinct,Mysql,Distinct,数据库如下所示: 要更好地理解它,请进行专栏翻译: pardavejas-卖方, kaina-价格, 数据-日期 我需要得到每个型号id和pardavejas集团的最新价格 查询“应该”如下所示: SELECT DISTINCT `pardavejas`, DISTINCT `model_id`... order by date and have only the latest date 谢谢你的帮助 另外,基本上我正在为每种型号和卖家制作价格历史记录。我需要得到最新的价格,没有任何较旧的日期

数据库如下所示:

要更好地理解它,请进行专栏翻译:
pardavejas
-卖方,
kaina
-价格,
数据
-日期

我需要得到每个型号id和pardavejas集团的最新价格

查询“应该”如下所示:

SELECT DISTINCT `pardavejas`, DISTINCT `model_id`... order by date and have only the latest date
谢谢你的帮助


另外,基本上我正在为每种型号和卖家制作价格历史记录。我需要得到最新的价格,没有任何较旧的日期。

从它的声音,这将工作:

SELECT MAX(date), pardavejas, model_id
FROM kainosn
GROUP BY pardavejas, model_id

这将为您提供每个唯一(pardavejas,model_id)的最大日期使用
distinct
关键字进行重复数据消除,您只需编写一次:

select distinct `pardavejas`, `model_id`, `date`
from `kainosn`
这将返回所有唯一的行

但是,如果您想要最大日期,
分组方式是:

select pardavejas, model_id, max(`date`) as maxDate
from kainosn
group by pardavejas, model_id

这将为您提供
pardavejas
model\u id

的每个唯一组合的最大日期,因此您正在尝试获取每对pardavejas和model\u id的最新日期?您需要显示所有唯一元组吗?@Barranka我需要获取每个model\u id和pardavejas的最新日期和价格group@TrueSkillZ为什么?在地球上,您是否将日期存储为
varchar
?(至少在您的SQL fiddle示例中是这样)。将数据类型更改为
date
在mysql中从未使用过MAX,因此我总是将日期设置为varchar,将其更改为date,并且一切正常。谢谢。显然MAX(数据)不支持日期格式。。查询返回的最大日期为2013-9-9,但实际的最大日期为2013-9-26哪种列包含日期值?它没有返回正确的日期,因为我使用的是varchar,而不是date。这是正确的解决方案。问题与上面的答案相同。最大日期返回2013-09-09,而不是实际的2013-9-26最大日期date@TrueSkillZ对于哪个(
pardavejas
model_id
)是
2013-09-26
的最长日期?从:(1099,10,13,1985,'2013-9-26','1380214130')@TrueSkillZ我已经检查了您的SQL Fiddle示例,您犯了一个很大的错误:您将日期存储为
varchar
。更改列的数据类型并重试:没错,我从未使用日期类型,因为我只需要将日期作为文本。通过将类型更改为最新,可以解决此问题。