日期:2014-05-17  浏览次数:20805 次

这个查询该怎么写?
表A
ID         AName

表B
BID         BName     AID

在表B中,AID可能为0,大于0的时候,则是对应了表A中的具体记录

我现在需要在查询表B的时候,把AID大于0的时候表A中的AName读取出来,同时也把AID为0的时候记录也读取出来。

Select   BID,BName,AID,AName   From   TableA,TableB   Where   AID   =   ID

这样可以把AID大于0的读出来,但是等于0的就没有办法调用出来了?

请问怎么写?

------解决方案--------------------
Select BID,BName,AID,AName From TableB ,(Select ID,AName from TableA union select 0 as id ,null as AName from TableA ) A Where AID = ID