你的连接全部是inner jion吧? 这样就必须要求每个表都有能关联上的数据,光有数据都是不够的.解决办法是把可能没有数据或者可能没有关联数据的表那个join方式改left jion比如 select a.*,b.*,c.* from a inner join b on a.id=b.id inner join c on a.id=c.id 这种情况下就必须要求a.b.c都有能关联的数据假如b不一定有数据,可以改成 select a.*,b.*,c.* from a inner join c on a.id=c.id left join b on a.id=b.id如果c不一定有数据,就可以改成 select a.*,b.*,c.* from a inner join b on a.id=b.id left join c on a.id=c.id以此类推。。
用Left Joineg: Select * from A Left Join B On A.classid=B.classid
这样就必须要求每个表都有能关联上的数据,光有数据都是不够的.解决办法是把可能没有数据或者可能没有关联数据的表那个join方式改left jion比如
select a.*,b.*,c.* from a
inner join b on a.id=b.id
inner join c on a.id=c.id
这种情况下就必须要求a.b.c都有能关联的数据假如b不一定有数据,可以改成
select a.*,b.*,c.* from a
inner join c on a.id=c.id
left join b on a.id=b.id如果c不一定有数据,就可以改成
select a.*,b.*,c.* from a
inner join b on a.id=b.id
left join c on a.id=c.id以此类推。。
Select *
from A Left Join B On A.classid=B.classid
比如:select isnull(a,0),.......a 就是你可能没有结果的查询字段
我说的这种结果,一定是用内连接join ....on
内连接产生的结果是多个表相匹配的记录出现在结果列表中。
即几个表一定要存在相同的记录,才可以
你说你在表连接时,其中有一个表中没有数据,但还和其它表关联。所以这样一执行的话,当然一定都不会结果啦
这种情况,你还想要出现结果的话,可以使用外连接
我想你说你在使用多表连接时,其中一个表在与其它连接,出现没有记录的情况。
如果没有判断错误的话,你一定使用的是join.....on 连接,即内连接
如果是这样的话,我解释一下:
内连接时,多表只有出现相匹配的记录,才会有结果出现列表中。
你在多表连接时,其中有一个表中没有数据,所以多表连接时,当然就不会有结果啦。
在这种情况下,你还想要结果出现的话,你可以使用外连接。
应该就没有问题啦!!