为何添加ORDER BY后SQL查询报错?仅移除该子句或其后内容可运行
问题原因及解决方法
你的核心问题是SQL关键字的顺序错误,这是SQL语法的基础规则:查询语句的关键字必须遵循固定书写顺序,正确顺序为:SELECT → FROM → WHERE(含连接条件) → ORDER BY
你把ORDER BY子句写在了WHERE前面,数据库的SQL解析器无法识别这种不符合规范的语法结构,导致语句执行失败。
修正后的正确SQL语句
将ORDER BY移到WHERE条件之后即可正常运行:
SELECT Titre, Libelle, DateSpectacle FROM piece, salle, spectacle WHERE Titre LIKE '%' AND piece.IdPiece = spectacle.IdPiece AND salle.IdSalle = spectacle.IdSalle ORDER BY DateSpectacle ASC;
额外优化建议
你当前使用的是逗号分隔表的旧式连接写法,推荐使用更清晰的JOIN语法,能更直观地表达表间关联关系,也能避免误写笛卡尔积查询:
SELECT Titre, Libelle, DateSpectacle FROM piece INNER JOIN spectacle ON piece.IdPiece = spectacle.IdPiece INNER JOIN salle ON salle.IdSalle = spectacle.IdSalle WHERE Titre LIKE '%' ORDER BY DateSpectacle ASC;
内容的提问来源于stack exchange,提问作者Noah Boucher
相关产品推荐
相关产品推荐

