Sql 如何合并具有条件的多个表

Sql 如何合并具有条件的多个表,sql,asp.net,sql-server,sql-server-2008,Sql,Asp.net,Sql Server,Sql Server 2008,我有3张桌子A、B、C 表A数据为: ID C_Name Status 4 ABC Confirm 5 Xyz Confirm 6 CDE Pendinng 7 EFG N/A 8 BBB Confirm 9 CCC Pending 10 ASE Confirm 表B数据如下: ID Name Date Amount 4 A 2014-11-01 2000 4 B 2014

我有3张桌子A、B、C

表A数据为:

ID  C_Name  Status
4   ABC     Confirm
5   Xyz     Confirm
6   CDE     Pendinng
7   EFG     N/A
8   BBB     Confirm
9   CCC     Pending
10  ASE     Confirm
表B数据如下:

ID  Name    Date    Amount
4   A    2014-11-01  2000
4   B    2014-11-02  3000
4   C    2014-11-20  1000
5   A    2014-10-01  2000
5   X    2014-10-10  1000
6   B    2014-03-30  3000
6   X    2014-04-01  1000
6   Z    2014-04-02  500
7   X    2014-12-01  1000
7   Y    2014-12-02  800
8   B    2014-11-15  3000
8   C    2014-11-15  1000
表C为

Name    dayOfPay    Pay     remark
B       2014-12-17  4000    Cash
C       2014-12-14  1000    Check
X       2014-12-01  2000    Online
这是我的表格和数据,我可以如何显示所有数据。如果我在表B中选择名称“B”,其中状态=在表A中确认。 我的问题是

select a.C_Name, b.Name,b.Amount,b.Date, c.dayOfPay,c.Pay,c.remark
 from A a join B b on a.ID = b.ID join c c on b.Name = c.Name where b.Name = 'b' and a.Status = 'confirm'

C_Name  Name    Amount  Date        dayOfPay    Pay     remark
ABC     B       3000    2014-11-02  2014-12-17  4000    Cash
BBB     B       3000    2014-11-15  2014-12-17  4000    Cash
如何显示以下记录

C_Name  Name    Amount  Date        dayOfPay    Pay remark
ABC     B        3000   2014-11-02      -        -    -
BBB     B        3000   2014-11-15      -        -    -
-       B        -      -          2014-12-17   4000    Cash

我需要显示此类型的结果。

使用外部联接左联接,而不是内部联接

    select a.C_Name, b.Name,b.Amount,b.Date, c.dayOfPay,c.Pay,c.remark
     from A a 
left join B b on a.ID = b.ID 
left join c c on b.Name = c.Name where b.Name = 'b' and a.Status = 'confirm'

你需要一个左连接。联接被分类为内部联接,只检索匹配的记录。因此,请尝试完全联接,而不是左联接。。我真的不知道你需要什么。顺便说一句,当我查看您的表时,使用join或left join时,结果可能不一样,因此,可能您做错了什么: