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

查询Uttar Pradesh与Haryana城市记录无结果的技术求助

解决无法获取指定州对应城市记录的方法
  • 修正表名拼写错误:你的SQL子查询里写的是from states,但实际表名是state,这是最可能的问题。修正后的SQL如下:
select * from city where stateid in (
    select stateid
    from state
    where statename in ('uttar pradesh','haryana')
)
  • 处理大小写匹配问题:如果数据库区分大小写,而state表中statename存储的是首字母大写的Uttar Pradesh、Haryana,用全小写查询会匹配失败。可以用不区分大小写的写法:

    • MySQL/MariaDB:where lower(statename) in ('uttar pradesh','haryana')
    • PostgreSQL:where statename ilike any(array['uttar pradesh','haryana'])
    • SQL Server:where lower(statename) in ('uttar pradesh','haryana')
  • 验证子查询有效性:先单独执行子查询select stateid from state where statename in ('uttar pradesh','haryana'),确认是否能返回对应的stateid。如果无结果,说明state表里没有这两个州的记录,或者名称存在拼写/格式差异(比如多空格、缩写)。

  • 检查关联字段类型一致性:确认city表的stateid和state表的stateid数据类型完全一致(比如都是INT或VARCHAR),类型不匹配会导致关联失败。

  • 改用JOIN查询替代IN子句:部分场景下IN子句可能因执行计划问题异常,换成JOIN写法试试:

select c.*
from city c
inner join state s on c.stateid = s.stateid
where s.statename in ('uttar pradesh','haryana')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:45:35