首页 > 解决方案 > 如何在 SQL 中将五个表与另一个依赖项连接起来

问题描述

我想在 SQL Server 中加入五个表。顺序如下。逻辑应该是 Table1 >>>>Key : ID >>>> Table_A & Table_B (If Table1.Status = ABC then Table_A else Table_B ) >>> Key : NUMBER >>> Table2 >>> Key : Number + Item_No >> > 表3

如果以下代码可以工作,请提供帮助。

在此处输入图像描述

SELECT * FROM 
TABLE1
LEFT JOIN (CASE WHEN status = 'ABC' THEN Table_A ELSE Table_B END ) X ON (Table1.ID = X.ID)
LEFT JOIN Table2 ON (X.NUMBER = Table2.NUMBER)
LEFT JOIN Table3 ON (Table3.CONCAT(NUMBER + Item_No) = Table2.CONCAT(NUMBER + Item_No))

标签: sql-server

解决方案


SELECT Q.*, T2.ItemNo, T2.Product, T3.Connection
FROM (
     SELECT T1.ID, CASE WHEN T1.Status = 'ABC'
                        THEN TA.Number
                        ELSE TB.Number
                   END as Number
     FROM Table1 T1
     LEFT JOIN TableA TA
       ON T1.ID = TA.ID
     LEFT JOIN TableB TB
       ON T1.ID = TB.ID
     ) as Q
JOIN Table2 T2
  ON Q.Number = T2.Number
JOIN Table3 T3
  ON T2.ItemNo = T3.ItemNo

推荐阅读