查询Konami旗下游戏的SQL返回全量数据的问题排查
你的SQL存在以下3个核心问题
- 关联条件缺失,过滤逻辑未绑定游戏表
当前查询仅关联了company和belongs_to表,但game表和belongs_to表没有通过game_id建立关联,相当于全量游戏数据和Konami对应的公司关联数据做了笛卡尔积,公司过滤条件完全没有作用到游戏维度,所以会返回所有游戏数据。 - 存在语法错误
SELECT子句中b.game_category后多了一个多余的逗号,语法校验严格的数据库会直接抛出执行错误。 - 字段匹配错误
你给出的4张表结构中不存在game_language字段,无法查询该字段;同时你的查询需求要返回game_language,但实际SELECT中写的是game_category,和需求不符。
修正后的参考SQL
SELECT a.game_id, a.game_name -- 注意:你的表结构中无game_language字段,确认该字段所属表后再补充到SELECT中 FROM game a INNER JOIN category b ON a.game_id = b.game_id -- 新增game表和belongs_to表的关联条件 INNER JOIN belongs_to d ON a.game_id = d.game_id -- 修正company表的关联逻辑 INNER JOIN company c ON d.company_id = c.company_id WHERE c.company_name = 'Konami';
内容的提问来源于stack exchange,提问作者mk-pawn
相关产品推荐
相关产品推荐

