
在 SQL 中,给表起别名是为了在查询中简化引用,避免表名的重复,或者用于自连接等场景。一旦给表指定了别名,就不能再使用它的原始表名,原因包括:
例如,考虑以下查询:
SELECT employees.name, departments.department_name
FROM employees
JOIN departments ON employees.department_id = departments.id
WHERE employees.salary > 50000;如果 employees 表被赋予别名 e:
SELECT e.name, d.department_name
FROM employees AS e
JOIN departments AS d ON e.department_id = d.id
WHERE e.salary > 50000;在这个查询中,employees 和 departments 表分别被赋予了别名 e 和 d。在 WHERE 子句中,我们使用 e.salary 而不是 employees.salary,因为 employees 已经通过 AS e 被重命名为 e。如果在查询中再次使用 employees,SQL 将无法识别它,因为它已经通过别名 e 被引用了。
总之,使用别名后不再使用原始表名是为了避免混淆,确保查询的一致性和清晰性,并遵循 SQL 的语法规则。