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

如何修正SQL查询以获取符合要求的Oils与Picking_history表数据?

修正SQL查询以获取目标结果

数据表结构

1. Oils表

idfullnameamount
1Salma70
2Ali20
3adams40

2. Picking_history表

idoil_idfirstsecondthirddate
135102511-2023

期望查询结果

idfnameamountfirstSecondthid
1Salma70
2Ali20

当前使用的错误SQL

SELECT 
    Packing_history.id,
    Oils.fullname,
    amount,      
    Packing_history.first,
    Packing_history.second,
    Packing_history.third
FROM 
    Packing_history 
INNER JOIN 
    Oils 
ON 
    Packing_history oil_id != Oils.id 
WHERE 
    Packing_history.date != '11-2023'
GROUP BY 
    Packing_history.id

问题分析与修正方案

你的SQL存在多处问题:

  1. 表名拼写错误:将Picking_history误写为Packing_history
  2. JOIN语法错误:关联条件Packing_history oil_id != Oils.id缺少字段访问的点号,且INNER JOIN逻辑错误——它只会返回两张表都匹配的记录,无法筛选出无对应拣选记录的油品
  3. 逻辑偏差:原SQL的过滤条件和关联逻辑完全不符合需求,无法得到目标结果

修正后的SQL代码

SELECT 
    o.id,
    o.fullname AS fname,
    o.amount,
    ph.first,
    ph.second,
    ph.third AS thid
FROM 
    Oils o
LEFT JOIN 
    Picking_history ph 
ON 
    o.id = ph.oil_id 
    AND ph.date = '11-2023'
WHERE 
    ph.id IS NULL

代码说明

  • 用LEFT JOIN以Oils表为主表,关联Picking_history表,关联条件限定为对应油品ID且拣选日期为'11-2023'
  • 通过WHERE ph.id IS NULL过滤掉存在对应拣选记录的油品,仅保留无匹配的记录(即Salma和Ali)
  • 用AS给字段设置别名,完全匹配目标结果中的fname和thid字段名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:41:21