在我的MySQL数据库中,我有两个表:investments(具有currency_iddate投资)和currencies(具有名称等数据)。

我想为投资表中的每种货币选择最小的date,然后将此结果与currencies合并。

我想象中的查询可能会更清楚:

SELECT T.currency_id, T.mindate
FROM (
    SELECT * , MIN( DATE ) AS mindate
    FROM investments
    GROUP BY investments.currency_id
    ORDER BY mindate ASC
) AS T
JOIN currencies ON T.currency_id =
currencies.currency_id


但是,我得到的只是子查询结果,没有连接Currency表中的任何内容。我究竟做错了什么?

最佳答案

SELECT子句中,您忘记获取currencies列的值。
在第一行添加currencies.*

SELECT T.currency_id, T.mindate, currencies.*
FROM (
    SELECT * , MIN( DATE ) AS mindate
    FROM investments
    GROUP BY investments.currency_id
    ORDER BY mindate ASC
) AS T
JOIN currencies ON T.currency_id =
currencies.currency_id

关于mysql - 与另一个表联接子查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48135460/

10-12 14:38