Mysql 多列和排序
我已经尝试了好几个小时让我的SQL查询按价格排序。我们开始: 表Mysql 多列和排序,mysql,max,Mysql,Max,我已经尝试了好几个小时让我的SQL查询按价格排序。我们开始: 表INFO id (unique id) mid (some id) name 表价格 id (some unique id) fuid (id for showing wich entry from INFO this price is connected to) dated (date) SQL查询: select INFO.id, INFO.mid, INFO.name, PRICES.price, PRICES.date
INFO
id (unique id)
mid (some id)
name
表价格
id (some unique id)
fuid (id for showing wich entry from INFO this price is connected to)
dated (date)
SQL查询:
select INFO.id, INFO.mid, INFO.name, PRICES.price, PRICES.dated
from INFO, PRICES
WHERE INFO.id = PRICES.fuid
ORDER BY PRICES.dated asc
limit 100
我想要的结果是INFO
中所有条目的列表,以及PRICES
中的最新价格。仅限最新价格,每个INFO
条目一个价格
我得到的:我从INFO
中得到一个独特条目列表,但我得到的是在PRICES
中输入的第一个价格,而不是最新的价格
我无法使用
max()
来帮助我对价格列进行排序。有谁知道如何解决这个问题吗?您是否使用了groupby
和MAX()
?以下使用MAX()
和groupby
可能会满足您的需要:
select INFO.id, INFO.mid, INFO.name, PRICES.price, MAX(PRICES.dated)
from INFO, PRICES
where INFO.id = PRICES.fuid
group by INFO.id, INFO.mid, INFO.name, PRICES.price
order by INFO.name asc
limit 100
请注意,orderby
列可以是您想要的任何内容;它不必是MAX(PRICES.dated)
编辑:我明白你的意思。您可以使用这样的临时表。您是否使用了
groupby
和MAX()
?以下使用MAX()
和groupby
可能会满足您的需要:
select INFO.id, INFO.mid, INFO.name, PRICES.price, MAX(PRICES.dated)
from INFO, PRICES
where INFO.id = PRICES.fuid
group by INFO.id, INFO.mid, INFO.name, PRICES.price
order by INFO.name asc
limit 100
请注意,orderby
列可以是您想要的任何内容;它不必是MAX(PRICES.dated)
编辑:我明白你的意思。您可以使用这样的临时表。对不起,您发布了错误的SQL查询。我的查询应该是:选择INFO.id、INFO.mid、INFO.name、PRICES.price、PRICES.dated from INFO、PRICES其中INFO.id=PRICES.fuid按INFO.id分组按价格订购按价格日期asc limit 100。有了这个组,我在INFO表中的每个条目只命中一次。kensnyder,通过您的查询,我从prices列中获得了很多包含所有价格的行。我只希望每个信息行有一个条目…抱歉,发布了错误的SQL查询。我的查询应该是:选择INFO.id、INFO.mid、INFO.name、PRICES.price、PRICES.dated from INFO、PRICES其中INFO.id=PRICES.fuid按INFO.id分组按价格订购按价格日期asc limit 100。有了这个组,我在INFO表中的每个条目只命中一次。kensnyder,通过您的查询,我从prices列中获得了很多包含所有价格的行。我希望每个信息行只有一个条目。。。