簡體   English   中英

左連接 OR 條件的替代方案

[英]alternative of left join OR condition

left join with or condition 會降低查詢性能,所以什么可以替代 left join 或 condition

select tableb.columnA, tableb.columnB,tablec.id,tabled.id,tablee.id
from tableA tableA
LEFT JOIN tableb tableb ON ((tableb.columnA = tableA.id)
                         OR (tableb.columnB = tableA.id))

LEFT JOIN tablec tablec ON tablec.Id = tableb.columnA 
LEFT JOIN tabled tabled ON tabled.id = tableb.columnB
LEFT JOIN tablee tablee ON tablee.Id= tableb .id

我將從在單獨的join中再次在columnb上加入tableb開始。

在其他連接上,您可以使用ISNULL function 像tablec.Id = ISNULL(tableba.columnA, tablebb.columnA)

取決於您需要什么以及您可以使用UNION / UNION ALLCOALESCE從適當的tableb實例獲取數據的數據。

並確保tableb中的兩列都被索引覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM