首页 > 解决方案 > 为派生表指定别名会产生错误

问题描述

如果我运行以下代码,我会得到“每个派生表都必须有自己的别名”,但是如果我尝试在GROUP BY itemID)withAS Cust或其他内容的末尾包含别名,则会出现语法错误。这里发生了什么?

SELECT * FROM(
(SELECT itemID, COUNT(itemID)
FROM Item
GROUP BY itemID) AS Head

LEFT OUTER JOIN(

SELECT * FROM(
SELECT itemID
FROM (Customer LEFT OUTER JOIN Bid ON custNum = buyerNum) LEFT OUTER JOIN Item USING (itemID)
WHERE custNum = 'pxtfj044'
GROUP BY itemID)) AS Now

标签: mysqlsql

解决方案


你有太多的括号,你LEFT JOIN需要一个ON子句:

SELECT *
FROM (SELECT itemID, COUNT(itemID)
      FROM Item
      GROUP BY itemID
     ) Head LEFT OUTER JOIN
     (SELECT itemID
      FROM Customer LEFT OUTER JOIN
           Bid
           ON custNum = buyerNum LEFT OUTER JOIN
           Item
           USING (itemID)
      WHERE custNum = 'pxtfj044'
      GROUP BY itemID
     ) Now
     ON . . .

推荐阅读