将两个 table 加入三个 ON
Joining Two table with three ON
我正在尝试从没有主键的两个 table 中选择数据
现在我的问题是我在加入时做错了什么,我可以在加入时使用超过 1 个 ON table.
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
正确的语法是使用 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
可以添加多个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
您真正打算对这些数据做什么?使它成为一个数组的数组?或者只是数组?
我正在尝试从没有主键的两个 table 中选择数据 现在我的问题是我在加入时做错了什么,我可以在加入时使用超过 1 个 ON table.
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
正确的语法是使用 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
可以添加多个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
您真正打算对这些数据做什么?使它成为一个数组的数组?或者只是数组?