[英]how to join two columns of the table with two columns of other table in sql
我在#temp表上有2列SKU_new和order_ID与订单表的SKU和ID列匹配,我正在使用内部 联接 ,但它会继续执行并且不会显示任何结果。
我的查询是
SELECT t.SKU_new, t.ID_Order
INTO #caseone
FROM dbo.Order_No AS n JOIN
dbo.Orders AS o
ON n.Order_No = o.Order_No JOIN
#Temp AS t
ON (t.ID_Order = o.ID or t.SKU_new = o.SKU);
阅读问题时,您说“ 2列SKU_new 和 order_ID”
基于此,您是否不会在Join中使用AND而不是OR?
SELECT t.SKU_new
, t.ID_Order
INTO #caseone
FROM dbo.Order_No AS n
JOIN dbo.Orders AS o ON n.Order_No = o.Order_No
JOIN #Temp AS t ON t.ID_Order = o.ID
AND t.SKU_new = o.SKU;
在两种情况下,查询继续执行
一种是当表上有未提交的事务时尝试
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT t.SKU_new, t.ID_Order
INTO #caseone
FROM dbo.Order_No AS n JOIN
dbo.Orders AS o
ON n.Order_No = o.Order_No JOIN
#Temp AS t
ON (t.ID_Order = o.ID or t.SKU_new = o.SKU)
如果是方案2,则可能有那么多具有错误索引的记录。 要检查是否正在获取记录,请在选择中尝试“顶部”
SELECT Top 1 t.SKU_new, t.ID_Order
INTO #caseone
FROM dbo.Order_No AS n JOIN
dbo.Orders AS o
ON n.Order_No = o.Order_No JOIN
#Temp AS t
ON (t.ID_Order = o.ID or t.SKU_new = o.SKU
我认为这可能是您想要的。
SELECT t.SKU_new
, t.ID_Order
INTO #caseone
FROM #temp t
JOIN dbo.orders o
ON t.ID_Order = o.ID
AND t.SKU_new = o.SKU
JOIN dbo.Order_No n
ON n.Order_No = o.Order_No
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.