我嘗試使用兩個內部連接和一個 if 案例共同創建一個 SQL 查詢。我創建了一個例子來解釋我的意思:
| ID | 型別 | 案件 |
|---|---|---|
| 123 | AAA | 贊 |
| 124 | BBB | 年年 |
| 125 | CCC | 年年 |
| 型別1 | ID1 |
|---|---|
| AAA | 888 |
| BBB | 999 |
| CCC | 777 |
| ID2 | 結果 |
|---|---|
| 666 | 1 |
| 555 | 2 |
| 777 | 3 |
換句話說,查詢應該做: 在第一個表中搜索 ID 125,所以我得到 Typ CCC 和 Case yyy 如果 case 是 yyy 然后在第二個表中搜索列 Typ1 中的 CCC,在這里我得到 ID 777 然后搜索在第三個表中,ID2 列中的 777 得到結果 3。如果 case 不是 yyy,那么只顯示第一個表的結果。結果應該是:
| ID | 型別 | 結果 |
|---|---|---|
| 123 | AAA | 不匹配 |
| 124 | BBB | 不匹配 |
| 125 | CCC | 3 |
我希望你能理解我試圖解釋的內容:)
uj5u.com熱心網友回復:
您希望從第一個表中選擇資料,并僅在適當的情況下顯示其他表中的資料。因此,外部連接其他表。
select t1.id, t1.typ, t3.result
from t1
left outer join t2 on t2.typ1 = t1.typ and t1.case = 'yyy'
left outer join t3 on t3.id2 = t2.id1
order by t1.id;
uj5u.com熱心網友回復:
您可以在不放置 if 條件的情況下執行此操作。只需在JOIN查詢部分包含條件
SELECT t1.ID, t1.Typ, t3.Result
FROM table1 t1
INNER JOIN table2 t2 ON (t1.Typ = t2.Typ1 AND t1.Case = "yyy")
INNER JOIN table3 t3 ON (t2.ID1 = t3.ID2 AND t2.ID1 = 777)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353892.html
標籤:sql sql-server
上一篇:如何使用正則運算式選擇分組依據
