select members.username ,m.password from members m,members 对于上面这个语句,LZ以为如何?所以DBMS为了消除二义性,强制必须使用别名来定义标识符(如果有别名的话)。
感觉用别名最主要是消除自连接时候的二义性 例如下面的USE Northwind GOSELECT A.FirstName + ' ' + A.LastName AS EmployeeName ,B.FirstName + ' ' + B.LastName AS DirectorName FROM Employees A LEFT JOIN Employees B ON A.ReportsTo = B.EmployeeID
那字段别名在where中不可以,在order by中可以, 谁可以解释解释呢?如select username as u,password from members where u='abc' order by u为什么where中不可以用u,而order by中则可以?
where的执行在select之前 所以在执行where后面的部分时,还不知道username被取别名了,而order by 执行在select之后 所以就可以识别
对于上面这个语句,LZ以为如何?所以DBMS为了消除二义性,强制必须使用别名来定义标识符(如果有别名的话)。
例如下面的USE Northwind
GOSELECT A.FirstName + ' ' + A.LastName AS EmployeeName
,B.FirstName + ' ' + B.LastName AS DirectorName
FROM Employees A
LEFT JOIN Employees B ON A.ReportsTo = B.EmployeeID
谁可以解释解释呢?如select username as u,password from members
where u='abc'
order by u为什么where中不可以用u,而order by中则可以?