SQL报错求助:字段列表中不存在CLUB.CLUB_NAME
SQL报错排查:unknown column 'CLUB.CLUB_NAME' in 'field list'
问题根源
你在SELECT子句中引用了CLUB.CLUB_NAME字段,但查询的表关联链中没有包含CLUB表,数据库找不到该字段对应的表,因此抛出这个错误。
从表结构可以看到,TEAM表通过CLUB_ID外键关联CLUB表,只需在现有JOIN逻辑中添加CLUB表的关联即可解决。
修正后的查询语句
SELECT CLUB.CLUB_NAME AS 'Club', TEAM.TEAM_NAME AS 'Team', TEAM.BIRTH_YEAR AS 'Year of Birth' FROM SEASON JOIN DIVISION ON DIVISION.SEASON_ID = SEASON.SEASON_ID JOIN ASSIGNMENT ON ASSIGNMENT.DIVISION_ID = DIVISION.DIVISION_ID JOIN TEAM ON TEAM.TEAM_ID = ASSIGNMENT.TEAM_ID -- 新增CLUB表的关联,通过TEAM的CLUB_ID关联CLUB表 JOIN CLUB ON TEAM.CLUB_ID = CLUB.CLUB_ID WHERE SEASON.SEASON_TYPE = 'Spring' AND YEAR(SEASON.SEA_START) = 2019 -- YEAR函数返回整数,建议直接用数字匹配,无需加引号 AND DIVISION.AGE <= '12'
额外优化提示
- 字段名大小写:查询中写的
CLUB.Club_NAME与表结构定义的CLUB_NAME大小写不一致,虽然多数数据库不区分大小写,但尽量保持一致可避免潜在问题; - 数值类型匹配:
YEAR(SEASON.SEA_START)返回整数类型,条件判断时用= 2019而非= '2019',能避免隐式类型转换带来的性能损耗。
内容的提问来源于stack exchange,提问作者sameera wafa
相关产品推荐
相关产品推荐

