加入这些表格

时间:2013-03-15 07:12:21

标签: sql sql-server sql-server-2008 join

我有3张表格如下:

Table Name :
------------
UserList            

Column Name
-------------
DealerID        DealerUserID

AAA             111
AAA             222
AAA             333
BBB             111
BBB             444
CCC             111
CCC             555

-

Table Name :
------------
UserInfo        

Coulmns
--------
DealerUserID    Name    
111             John        
222             James
333             Dany
444             Daniel
555             Romie

-

Table Name :
------------
CarPermitted    

Coulmns
--------
DealerID        DealerUserID

AAA             111
AAA             222
BBB             111
CCC             111

我想要一个结果,如下面的查询,输入为:

对于DealerID = AAA

Name    DealerUserID    AllowedStatus

John    111         true
James   222         true
Dany    333         false

我尝试了很多联接,如下所示,但无法获得我想要的结果。任何建议如何才能得到它。

AllowedStatus是我需要获取的值:

如果CarPermitted中存在来自表UserList的DealerID和DealerUserID的组合/// rest将为false ..

注意:它将显示属于一个经销商的所有dealeruserId

1 个答案:

答案 0 :(得分:1)

在这里,你没有显示你的疑问,所以我可以说你出错了

如果记录存在于允许的表中,则允许状态来自注释。

SELECT UF.Name, UF.DealerUserID, 
       CASE P.DealerID IS NULL THEN 'false' ELSE 'true' END AS AllowedStatus
FROM UserList UL
JOIN UserInfo UF ON UL.DealerUserID = UF.DealerUserID
LEFT JOIN CarPermitted P ON UL.DealerUserID = P.DealerUserID AND UL.DealerID = P.DealerID
WHERE UL.DealerID = 'AAA'