Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:联接表的别名-故障排除_Mysql_Sql - Fatal编程技术网

MySQL:联接表的别名-故障排除

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

我这里有一个关于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) 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
这是连接条件,不返回表