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

SQL执行SELECT时子查询返回多个值报错如何解决

报错原因

你编写的关联子查询会为每个供应商返回其名下所有肉批次的温度值,多个返回值无法直接与单个数值3进行比较,因此触发了该报错。

解决方案

方案1:使用EXISTS子查询(推荐)

该方案性能更优,无需额外去重,只要供应商存在至少一个温度低于3℃的批次就会返回对应邮箱:

SELECT Email
FROM Supplier s
WHERE EXISTS (
    SELECT 1 
    FROM Batchofmeat b
    WHERE b.Supplier_ID = s.Supplier_ID 
    AND b.Temperature < 3
);

方案2:使用关联查询+去重

先关联两张表筛选符合温度要求的记录,再通过DISTINCT去掉同一供应商重复的邮箱记录:

SELECT DISTINCT s.Email
FROM Supplier s
INNER JOIN Batchofmeat b 
ON s.Supplier_ID = b.Supplier_ID
WHERE b.Temperature < 3;

拓展(可选)

如果你需要查询名下所有批次温度都低于3℃的供应商,可以使用ALL条件实现:

SELECT Email
FROM Supplier s
WHERE 3 > ALL (
    SELECT b.Temperature
    FROM Batchofmeat b
    WHERE b.Supplier_ID = s.Supplier_ID
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:18:04