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

如何在主查询与子查询中使用WHERE条件?SQL报错求助

排查你的SQL语法错误及修正方案

嘿,我一眼就发现了导致报错的核心问题——你的主查询里连续用了两个WHERE关键字,这是SQL语法的大忌!一个SELECT语句只能有一个WHERE子句,多个过滤条件只需要用AND/OR连接起来就好。

按照你的需求,我已经把修正后的SQL写出来了:

select * 
from products c 
where c.company = "Apple" 
  and c.id in (
    select bi.component_id 
    from category ct 
    join items bi on ct.id = bi.id 
    where ct.id in (1,2,3)
  )

修正点说明:

  • 移除了主查询中多余的第二个WHERE,将c.company = "Apple"和c.id in (...)两个条件用AND合并到同一个WHERE子句下,这是解决报错的关键。
  • 顺便给SQL做了换行排版,这样后续排查问题时会更清晰,也符合SQL的书写规范。
  • 另外提一句:你用ct.id = bi.id关联category和items表,如果这和你的业务逻辑匹配就没问题;如果实际应该是通过其他字段关联(比如bi.category_id = ct.id),记得根据实际情况调整关联条件哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:48:30