SQL连接中表名与别名能否互换?含查询报错疑问
SQL连接查询中表名与别名的使用规则
- 当你在FROM子句中为表定义了别名后,主流数据库系统(如MySQL、PostgreSQL、SQL Server、Oracle等)要求你统一使用别名,不能再混用原表名,你遇到的报错属于预期结果。
- 原因:一旦给表指定了别名,这个别名就会成为该表在当前查询中的唯一标识,原表名在当前查询的作用域内会被数据库忽略。就像给对象起了临时代号,在这个查询里只能用代号指代它。
- 修正你的查询语句,只需把
COURSES.FID替换为别名C.FID即可:
SELECT FNAME, CNAME FROM FACULTY F, COURSES C WHERE F.FID=C.FID AND C.FID='F04';
如果不想使用别名,也可以直接去掉FROM子句里的别名定义,全程使用原表名:
SELECT FNAME, CNAME FROM FACULTY, COURSES WHERE FACULTY.FID=COURSES.FID AND COURSES.FID='F04';
内容的提问来源于stack exchange,提问作者user2044822
相关产品推荐
相关产品推荐

