【问题标题】:Joining Two table with three ON连接两个表与三个 ON
【发布时间】:2019-08-07 02:19:05
【问题描述】:

我试图从两个没有主键的表中选择数据 现在我的问题是我在加入时做错了什么,我可以在加入表中使用超过 1 个 ON。

SELECT 
    A.PRODUCT, 
   A.WSTYPE, A.PACKAGE, AWACSLF.LFSIZE,AWACSLF.DEFAULTWOQTY
FROM OCAPSYS.AWACSRECIPEBYWSTYPE A
 inner join  OCAPSYS.AWACSLF 
 On A.LEADFRAME12NC = AWACSLF.LF12NC  
 On A.PRODUCT =  AWACSLF.DEVICE
 On A.PACKAGE =  AWACSLF.PACKAGE

【问题讨论】:

  • 只能有一个ON,另外两个ON应该改为AND。所以它变为On A.LEADFRAME12NC = AWACSLF.LF12NC AND A.PRODUCT = AWACSLF.DEVICE AND A.PACKAGE = AWACSLF.PACKAGE

标签: c# sql oracle toad


【解决方案1】:

正确的语法是使用AND:

   SELECT 
       A.PRODUCT, 
       A.WSTYPE, A.PACKAGE, AWACSLF.LFSIZE,AWACSLF.DEFAULTWOQTY
       FROM OCAPSYS.AWACSRECIPEBYWSTYPE A
       INNER JOIN  OCAPSYS.AWACSLF 
       ON A.LEADFRAME12NC = AWACSLF.LF12NC  
       AND A.PRODUCT =  AWACSLF.DEVICE
       AND A.PACKAGE =  AWACSLF.PACKAGE

【讨论】:

    【解决方案2】:

    只要每个表的数据不具有相同的列名,就可以添加多个ON。但 ON 仅用于表格。例如:

    SELECT O.OrderNumber, CONVERT(date,O.OrderDate) AS Date, 
           P.ProductName, I.Quantity, I.UnitPrice 
      FROM [Order] O 
      JOIN OrderItem I ON O.Id = I.OrderId 
      JOIN Product P ON P.Id = I.ProductId
    ORDER BY O.OrderNumber
    

    您真正打算如何处理这些数据?让它成为一个数组的数组?还是只是数组?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多