我正在使用货币汇率数据库,其中存在从多个来源获取的多种货币的汇率。
我正在尝试构建一个查询,该查询从每个来源获取每种货币的最后两条记录。 总共有大约60种货币来自10个不同的来源。
SELECT c.id, c.name, c.iso4217, c.flag,
r1.buy, r1.sell, r1.amount, r1.time
FROM currencies c
JOIN rates r1 ON r1.currency = c.id
JOIN src s ON s.id = r1.src
WHERE c.status = 10
AND s.status = 10
AND r1.id IN (
SELECT id
FROM
(
SELECT r2.id
FROM
rates r2
WHERE
r2.currency = c.id
AND r2.src = s.id
ORDER BY r2.id
DESC LIMIT 2
)alias
)
此查询无法运行,最终会返回
未知栏' c.id'在' where子句'
如果我手动设置
,它确实可以正常工作并提供我想要的数据r2.currency = #
AND r2.src = #
到最里面的子查询中的任何id。
如何将c.id和s.id传递给子查询?