2010-08-12 108 views
3

我有3個表A,B和C左連接與where子句

alt text

我這樣做: - /*有表A和表B之間沒有任何關係。表A僅用於爲C.Profile */ 第一步提供值D < ----從C中選擇*其中Profile = 1 //要給出特定的ProID(我已成功從A表中檢索它)

第二步驟)輸出< ---從乙左選擇B.sname,D.Status加入d論B.ID = D.ID

使得輸出看起來像上面所示的所需的輸出表中: -

我可以使用單個查詢來做到這一點嗎?怎麼樣?

回答

3

你的意思是一個子查詢:

Select B.DirName,D.Status 
from B Left Join (
    Select * 
    from C 
    where ProId=1) As D 
On B.DirID=D.DirID 

最好是使用字段列表,而不是*

+1

我認爲這會工作... 大.. – PrateekSaluja 2010-08-12 11:17:58

+0

多少這些內部的選擇(內部pranthesis)施加負載到數據庫服務器?這是一種沉重的查詢或數據庫將處理它非常順利? – VSB 2015-09-06 09:38:36