用Left Joineg:
Select *
from A Left Join B On A.classid=B.classid

解决方案 »

  1.   

    你的连接全部是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以此类推。。
      

  2.   

    用Left Joineg:
    Select *
    from A Left Join B On A.classid=B.classid
      

  3.   

    我做过类似的查询,你最好是用isnull()把没有结果的设成0就可以了。
    比如:select isnull(a,0),.......a 就是你可能没有结果的查询字段
      

  4.   

    使用多表查询时,分为内连接,外连接(左外连接,右外连接,全外连接)
    我说的这种结果,一定是用内连接join ....on 
    内连接产生的结果是多个表相匹配的记录出现在结果列表中。
    即几个表一定要存在相同的记录,才可以
    你说你在表连接时,其中有一个表中没有数据,但还和其它表关联。所以这样一执行的话,当然一定都不会结果啦
    这种情况,你还想要出现结果的话,可以使用外连接
      

  5.   

    多表查询主要分为内连接,外连接(左外连接,右外连接,全外连接)
    我想你说你在使用多表连接时,其中一个表在与其它连接,出现没有记录的情况。
    如果没有判断错误的话,你一定使用的是join.....on 连接,即内连接
    如果是这样的话,我解释一下:
    内连接时,多表只有出现相匹配的记录,才会有结果出现列表中。
    你在多表连接时,其中有一个表中没有数据,所以多表连接时,当然就不会有结果啦。
    在这种情况下,你还想要结果出现的话,你可以使用外连接。
    应该就没有问题啦!!