在sqlServer里,如果在from或者join里表名用了别名,那么在where里就必须用别名。
SELECT BD_CUSTOMER.ID
FROM BD_CUSTOMER
INNER JOIN BD_BILLING_CUSTOMER
ON BD_CUSTOMER.ID=BD_BILLING_CUSTOMER.CUST_ID
WHERE BD_CUSTOMER.ID='1'
如下的话会error
SELECT CUST.ID
FROM BD_CUSTOMER CUST
INNER JOIN BD_BILLING_CUSTOMER BILL
ON CUST.ID=BILL.CUST_ID
WHERE BD_CUSTOMER.ID='1'
推测可能的原因是,在自连接的话,给一个表以不同的别名,如果在where里引用表名的话,会引起混乱,所以干脆屏蔽了此方法。