You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL子查询关联currencies表失败:查询未返回币种表数据

问题分析与修正方案

嘿,我一眼就发现问题所在啦!你的查询其实已经成功关联了currencies表,但你压根没在主查询的SELECT子句里包含任何currencies表的字段,所以结果里只显示了子查询的currency_id和mindate,看起来就像没关联上一样。

另外还有个小问题:你的子查询里用SELECT *再配合GROUP BY currency_id不符合标准SQL规范(MySQL在非严格模式下虽然允许这么写,但可能会返回不确定的其他字段值),而且你其实只需要currency_id和最早投资日期,完全没必要查询所有字段。

给你修正后的查询语句:

SELECT 
    T.currency_id, 
    T.mindate,
    c.name  -- 这里替换成你需要的currencies表字段,比如币种名称、代码等
FROM ( 
    SELECT 
        currency_id, 
        MIN(DATE) AS mindate 
    FROM investments 
    GROUP BY currency_id 
) AS T 
JOIN currencies c ON T.currency_id = c.currency_id
ORDER BY T.mindate ASC;

关键修改点:

  • 子查询简化:只保留分组需要的currency_id和聚合后的mindate,避免不必要的字段查询,同时符合SQL规范。
  • 主查询添加currencies字段:在SELECT里明确写出你需要的currencies表字段(比如c.name),这样就能看到关联后的币种信息了。
  • 调整排序位置:把ORDER BY放到主查询里,子查询的排序对最终结果没有影响,反而会浪费性能。

内容的提问来源于stack exchange,提问作者Marcin Wasilewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:33:03