Php MySQL从不同来源选择最新记录

Php MySQL从不同来源选择最新记录,php,mysql,join,subquery,Php,Mysql,Join,Subquery,我正在使用一个货币汇率数据库,其中有从多个来源获取的多种货币的汇率 我试图构建一个查询,从每个来源获取每种货币的最后两条记录。 总共有大约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

我正在使用一个货币汇率数据库,其中有从多个来源获取的多种货币的汇率

我试图构建一个查询,从每个来源获取每种货币的最后两条记录。 总共有大约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
            )
此查询不会运行,只会返回

“where子句”中的未知列“c.id”

它确实工作得非常好,如果我手动设置,它会为我提供所需的数据

r2.currency = #
AND r2.src = #
到最内层子查询中的任何ID


如何将c.id和s.id传递给子查询?

货币中是否有
id
列?是的,该表中有一个id列,主要索引。在
货币中是否有
id
列?是的,该表中有一个id列,主要索引。