【问题标题】:SQL - Table alias in Left JoinSQL - 左连接中的表别名
【发布时间】:2017-05-29 08:04:10
【问题描述】:

我正在尝试使用 Left Join 编写一个简单的 SQL 查询。

这是查询:

SELECT * 
FROM ( 
   SELECT * 
   FROM TRN_IN.COIT AS TRANSMISSIONS
     LEFT JOIN ( 
       SELECT TRNNumber ,COUNT(ID) 
       FROM TRN_IN.COIT AS TOTAL_LINES   
       WHERE DataPiece02 = 'TO'   
       GROUP BY TRNNumber 
   ) ON TRANSMISSIONS.TRNNumber  = TOTAL_LINES.TRNNumber
)

第二个表别名是 TOTAL_LINES。

运行它时,我收到 TOTAL_LINES 未列出的错误。

奇怪的是,当尝试自己运行第二个查询时,没有错误:

(SELECT TRNNumber ,COUNT(ID) 
 FROM TRN_IN.COIT AS TOTAL_LINES 
 WHERE DataPiece02 = 'TO' 
 GROUP BY TRNNumber )

有人知道吗?

【问题讨论】:

    标签: sql left-join table-alias


    【解决方案1】:

    希望您在错误的位置分配了AS TOTAL_LINES 表别名。

    在第二个子查询之后放置表别名将解决您的问题。

    你能试试下面的查询吗:

    SELECT *
    FROM (
        SELECT *
        FROM TRN_IN.COIT AS TRANSMISSIONS
        LEFT JOIN (
            SELECT TRNNumber
                ,COUNT(ID) AS CountDetails
            FROM TRN_IN.COIT 
            WHERE DataPiece02 = 'TO'
            GROUP BY TRNNumber
            ) AS TOTAL_LINES ON TRANSMISSIONS.TRNNumber = TOTAL_LINES.TRNNumber
        ) AS Result
    

    【讨论】:

      【解决方案2】:

      TOTAL_LINES 必须是整个 select 的别名,而不是 from 子句中的 table。更改为:

      SELECT * FROM ( SELECT * FROM TRN_IN.COIT AS TRANSMISSIONS
      
      LEFT JOIN ( SELECT TRNNumber ,COUNT(ID) FROM TRN_IN.COIT WHERE DataPiece02 = 'TO'   GROUP BY TRNNumber ) AS TOTAL_LINES   
      
      ON TRANSMISSIONS.TRNNumber  = TOTAL_LINES   .TRNNumber)
      

      【讨论】:

        【解决方案3】:

        试试这个..

        SELECT TOTAL_LINES.TRNNumber,COUNT(TOTAL_LINES.ID) FROM TRN_IN.COIT TRANSMISSIONS LEFT JOIN TRN_IN.COIT TOTAL_LINES 
        ON TRANSMISSIONS.TRNNumber  = TOTAL_LINES.TRNNumber
        WHERE TOTAL_LINES.DataPiece02 = 'TO'   GROUP BY TOTAL_LINES.TRNNumber;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多