1

我已经尝试了几个小时来让我的 SQL 查询按价格排序。开始了:

桌子INFO

id (unique id)
mid (some id)
name 

桌子PRICES

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()帮助我对价格列进行排序。有谁知道如何解决这个问题?

4

1 回答 1

1

你用过GROUP BYMAX()?以下使用MAX()andGROUP BY可能会满足您的需要:

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

请注意,ORDER BY列可以是您想要的任何内容;它不必是MAX(PRICES.dated)

编辑:我明白你的意思。您可以使用像这个SQL Fiddle这样的临时表。

于 2013-01-06T22:59:02.287 回答