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

如何将下述SQL查询语句改写为标准INNER JOIN写法?

SQL隐式内连接转显式INNER JOIN改写结果

改写后的标准显式内连接语句如下,和原语句查询逻辑、返回结果完全一致:

SELECT person.person_last_name, person.birth_date, vip_acct_person.vip_ACCT_ID 
FROM person
INNER JOIN vip_acct_person 
  ON vip_acct_person.person_id = person.person_id
WHERE person.birth_date < DATE_SUB(CURDATE(), INTERVAL 57 YEAR) 
ORDER BY person.birth_date;
改写要点说明
  • 原SQL用逗号分隔多表、关联条件写在WHERE中的写法属于隐式内连接语法,和显式INNER JOIN的执行效率、返回结果没有任何区别
  • 改写核心逻辑:把FROM子句里的表间逗号替换为INNER JOIN,将两表的关联匹配条件vip_acct_person.person_id = person.person_id从WHERE中拆分出来,放到ON子句后作为连接判定规则
  • 原WHERE子句中仅保留针对数据的业务过滤条件,SELECT返回字段、ORDER BY排序规则均保持原样,没有做任何逻辑调整
  • 推荐使用显式INNER JOIN写法:关联逻辑和过滤逻辑拆分明确,多表关联场景下可读性更高,不容易漏写关联条件导致笛卡尔积错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:33:21