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

SQL查询问题:从父记录归集信息至子记录结果不符

解决方案

要让所有parent表的记录都关联child表中的Acer、Aspire信息,你需要调整关联逻辑,不再按m_id进行匹配,而是让每个parent记录都绑定固定的make和model值,或者关联child表中特定的目标记录。

方法1:直接指定固定值

如果Acer和Aspire是固定需要显示的内容,直接在SELECT中定义常量即可:

SELECT 
    T1.m_id, 
    T1.child_id, 
    'Acer' AS make, 
    'Aspire' AS model, 
    T1.op_status 
FROM parent T1

方法2:从child表中动态获取目标值

如果需要从child表中动态获取Acer、Aspire(比如后续该记录可能更新),可以先通过子查询提取该组信息,再与parent表做无条件关联:

SELECT 
    T1.m_id, 
    T1.child_id, 
    T2.make, 
    T2.model, 
    T1.op_status 
FROM parent T1
CROSS JOIN (
    -- 提取child表中m_id=1的唯一make和model(去重避免生成重复行)
    SELECT DISTINCT make, model FROM child WHERE m_id = 1
) T2

也可以用左连接实现相同效果:

SELECT 
    T1.m_id, 
    T1.child_id, 
    T2.make, 
    T2.model, 
    T1.op_status 
FROM parent T1
LEFT JOIN (
    SELECT DISTINCT make, model FROM child WHERE m_id = 1
) T2 ON 1=1

原方法无效的原因

  • 内连接(你最初的SQL)只会返回m_id在两张表中都存在的记录,所以仅能拿到m_id=1的结果。
  • 普通左连接按T1.m_id = T2.m_id关联时,只有m_id=1的parent记录能匹配到child数据,其他记录的make和model自然为NULL。

内容的提问来源于stack exchange,提问作者MCIT Trends

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:43:21