今天我查一个报表。结果没数据。我很纳闷,情况如下
比如有一张表A,一张表B,A表是空的,B表有1条记录,那么
select * from A,B 我想应该是有一条记录啊。。结果,结果。。结果没有记录。。我昏了。。谁讲一下为什么啊?????

解决方案 »

  1.   

    这种写法是内连接,A和B表进行内连接,当然没数据了。可以这样:
    select * from a right join b on 1=1
      

  2.   


    select * from  a full join b on 1=1
      

  3.   

    SELECT * FROM TB1 FULL JOIN  TB2 ON TB1.NUM=TB2.NUM 
      

  4.   

    select * from A,B 相当于A cross JOIN b 做出来就是2张表的笛卡尔积 这样的话 由于一个没有数据 组合当然就没数据了 
    可以用外连接来进行查询 Left join right join  full join 
      

  5.   

    我之前做过的报表基本上left join到底的。
      

  6.   

    用右外连接查询就好了哦!
    select * from a right join b on 1=1
    自己尝试查询就好啦

      

  7.   

    嗯,楼上S的都回答了。是left join right join的区别。
      

  8.   

    在mssql中,select *  from a,b相当于select * from a inner join b 
      

  9.   

    select * from A,B
    等同于 select * from A inner join B on 1=1 是内连接
    若要查出数据用 full join~~