我已经尝试了几个小时来让我的 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.dated
from INFO, PRICES
WHERE INFO.id = PRICES.fuid
ORDER BY PRICES.dated asc
limit 100
我想要的结果是 INFO
中所有条目的列表,以及来自 PRICES
的最新价格。只有最新价格,每个 INFO
条目一个价格。
我得到的结果:我从 INFO
中得到了一个唯一条目的列表,但我得到了在 PRICES
中输入的第一个价格,而不是最新的。
我无法获取 max()
来帮助我对价格列进行排序。谁知道如何解决这个问题?
最佳答案
您是否将 GROUP BY
与 MAX()
一起使用? MAX()
和 GROUP 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 .
关于mysql - 多列和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187566/