2010-08-12 106 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