2010-05-16 62 views
0

這裏是我的方案幫助制定SQL查詢

表1:GID || Info1

表2:GID || Tb1GID(將 轉換爲表1的GID)|| Info2

表3:GID || Info3

表4:GID || Tb2GID(指表2 || Tb3GID的 GID(指 表3 GID ||價值

現在我必須建立一個SQL查詢來獲取值,給出一個特定的信息1,信息2,INFO3。 本質,我必須使用表1的GID來獲取表1的GID,方法是通過映射表1的info2和GID。然後使用info 3獲取表3的GID。然後將這些GID組合到GID中以獲取值?表4.

什麼是構建一個SQL查詢這一個最優化的方式

+1

到目前爲止,你有什麼疑問? – Oded 2010-05-16 16:36:53

回答

2

剛剛加入的ID表: S和在條件相匹配的信息值:

select 
    t4.Value 
from 
    [Table 1] as t1 
    inner join [Table 2] as t2 on t2.Tb1GID = t1.GID 
    inner join [Table 4] as t4 on t4.Tb2GID = t2.GID 
    inner join [Table 3] as t3 on t3.GID = t4.Tb3GID 
where 
    t1.Info1 = @Info1 and 
    t2.Info2 = @Info2 and 
    t3.Info3 = @Info3 

這種通信最清楚如何關係工作,給查詢規劃的最佳信息與合作。

+1

您也可以將't2'和't3'的WHERE子句移動到它們各自的JOIN中。 – 2010-05-16 16:55:52