我有问题:
#1066 - 不唯一的表/别名:'clients'
SELECT request.*,
clients.ClientName AS ToClient,
clients.ClientName AS FromClient,
drivers.DriName, requesttype.ReqTName
FROM request
INNER JOIN clients ON clients.ClientID = request.ReqToClient
INNER JOIN clients ON clients.ClientID = request.ReqFromClient
INNER JOIN drivers ON drivers.DriID = request.DriID
INNER JOIN requesttype ON requesttype.ReqTID = request.ReqTID
Run Code Online (Sandbox Code Playgroud)
您clients
在同一FROM
个子句中加入了两次,这会引发错误。
表的两个化身需要有不同的别名(选择:cl_to
和cl_from
):
SELECT request.*,
cl_to .ClientName AS ToClient,
cl_from.ClientName AS FromClient,
drivers.DriName, requesttype.ReqTName
FROM request
INNER JOIN clients AS cl_to -- alias 1
ON cl_to.ClientID = request.ReqToClient
INNER JOIN clients AS cl_from -- alias 2
ON cl_from.ClientID = request.ReqFromClient
INNER JOIN drivers
ON drivers.DriID = request.DriID
INNER JOIN requesttype
ON requesttype.ReqTID = request.ReqTID ;
Run Code Online (Sandbox Code Playgroud)
我更喜欢对所有表使用(短)别名:
SELECT rq.*,
cl_to .ClientName AS ToClient,
cl_from.ClientName AS FromClient,
dr.DriName, rt.ReqTName
FROM request AS rq
INNER JOIN clients AS cl_to ON cl_to.ClientID = rq.ReqToClient
INNER JOIN clients AS cl_from ON cl_from.ClientID = rq.ReqFromClient
INNER JOIN drivers AS dr ON dr.DriID = rq.DriID
INNER JOIN requesttype AS rt ON rt.ReqTID = rq.ReqTID ;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18874 次 |
最近记录: |