MySQL:联接表的别名-故障排除
我这里有一个关于SQL fiddle的工作示例: 使用以下查询:MySQL:联接表的别名-故障排除,mysql,sql,Mysql,Sql,我这里有一个关于SQL fiddle的工作示例: 使用以下查询: SELECT * FROM (Orders JOIN Salesperson ON Salesperson.ID = Orders.salesperson_id) JOIN (SELECT salesperson_id AS sid, MAX( Amount ) AS MaxOrder FROM Orders GROUP BY salesperson_id
SELECT *
FROM (Orders JOIN
Salesperson ON
Salesperson.ID = Orders.salesperson_id)
JOIN
(SELECT salesperson_id AS sid, MAX( Amount ) AS MaxOrder
FROM Orders
GROUP BY salesperson_id) AS TopOrderAmountsPerSalesperson
ON (TopOrderAmountsPerSalesperson.sid=Orders.salesperson_id AND
TopOrderAmountsPerSalesperson.MaxOrder=Orders.Amount)
但当我尝试为第一个联接表分配别名时,如下所示:
SELECT *
FROM (Orders JOIN
Salesperson ON
Salesperson.ID = Orders.salesperson_id) AS SalesOrders
JOIN
(SELECT salesperson_id AS sid, MAX( Amount ) AS MaxOrder
FROM Orders
GROUP BY salesperson_id) AS TopOrderAmountsPerSalesperson
ON (TopOrderAmountsPerSalesperson.sid=SalesOrders.salesperson_id AND
TopOrderAmountsPerSalesperson.MaxOrder=SalesOrders.Amount)
我得到一个语法错误。你知道为什么吗
我将其用作别名联接表的资源:
您可以为整个查询或表名或字段名提供别名,但不能在联接条件下提供别名。使用
Orders
表的别名salesforders
尝试以下示例
SELECT *
FROM Orders AS SalesOrders JOIN
Salesperson ON
Salesperson.ID = SalesOrders.salesperson_id
JOIN
(SELECT salesperson_id AS sid, MAX( Amount ) AS MaxOrder
FROM Orders
GROUP BY salesperson_id) AS TopOrderAmountsPerSalesperson
ON (TopOrderAmountsPerSalesperson.sid=SalesOrders.salesperson_id AND
TopOrderAmountsPerSalesperson.MaxOrder=SalesOrders.Amount)
我听不懂你说的话。请再解释一下你是个救生员!我还是很困惑。我的原始join,
订单是否在Salesperson.ID=订单上加入Salesperson.Salesperson\u ID
,是否返回一个表?如果它返回一个表,为什么我不能给这个表分配一个别名?从我最初的问题中,我不明白为什么(订单加入Salesperson ON Salesperson.ID=订单。Salesperson_ID)作为SalesOrders
不起作用。(订单加入Salesperson ON Salesperson.ID=订单。Salesperson_ID)作为SalesOrders
这是连接条件,不返回表