Vc+ado+acces下
有两表a(num,name),b(num,count)
a表有数据  num  name
            1    a
            2    b
            3    c
b表有数据  num  count
    1    10
    2    15
使用怎样一SQL语句使得结果为:
  num name count
  1    a     10
  2    b     15
  3    c     null
我已通过select a.num,a.name,b.count from a LEFT OUTER JOIN b ON a.num=b.num实现,想问一下还有没有其他方法

解决方案 »

  1.   

    http://www.vcshare.net/download/sqlserver2000.htm
      

  2.   

    SELECT  A.NUM, A.NAME,COUNTS=(SELECT MAX(B.COUNTS) FROM B WHERE A.NUM=B.NUM)  FROM A這樣寫也樣,可能速度沒你寫的快!
      

  3.   

    select a.num,a.name,b.count from a,b where a.num*=b.num
      

  4.   

    select * from a,b where a.num*=b.num
      

  5.   

    晕,原来你写出来了
    就是左外连接,没有更好的了select a.[num],a.[name],b.[count] from a表 as a Left Join b表 as b on a.num=b.num
      

  6.   


      select a.num,a.name,decode(b.count,null,'null',b.count)
      from a,b where a.num=b.num(+);
      

  7.   

    °ï¶¥»ì·Ö
      

  8.   

    to :DebugXP() ( ) 
    左外连接??
      

  9.   

    < join_hint > ::=
        { LOOP | HASH | MERGE | REMOTE }参数
    LOOP | HASH | MERGE指定查询中的联接应使用循环、哈希或合并。使用 LOOP | HASH | MERGE JOIN 将在两个表之间强制一个特定联接。 MS SQL Server 有这样的用法...不过不见得就是你要的...呵呵...:@
      

  10.   

    select * from a,b where a.num*=b.num
    好像Access 不支持