select a.*,b.*
from a inner join b on a.djbh=b.djbh and a.je=b.je and a.shl=b.shl不过当你的a中三个列有相同数据时,就要额外处理

解决方案 »

  1.   

    table A                                                                               tableB
    djbh                je          shl                                 djbh            je         shl    cj
    mdj123          10           5                                  mdj123       10         5     1
    mdj124           5             1
    结果 
    djbh         je      shl    cj
    mdj123   10      5       1
    mdj124    5        1
      

  2.   

    select a.*,b.cj
    from a leftjoin b on a.djbh=b.djbh and a.je=b.je and a.shl=b.shl
      

  3.   


    IF OBJECT_ID(N'tableA') IS NOT NULL 
    DROP TABLE tableAGo
    CREATE TABLE tableA(djbh VARCHAR(10),je INT,shl int)
    INSERT  INTO tableA
    SELECT 'mdj123',10,5 UNION ALL
    SELECT  'mdj124',5,1IF OBJECT_ID(N'tableB') IS NOT NULL 
    DROP TABLE tableBGo
    CREATE TABLE tableB(djbh VARCHAR(10),je INT,shl INT,cj int)
    INSERT  INTO tableB
    SELECT 'mdj123',10,5,1
    -------------------------------------------------查询---------------------------------------------
    SELECT a.*,isnull(cast(b.cj as varchar),'') cj FROM tableA a LEFT JOIN tableB b ON a.djbh=b.djbh
     
    /*
    djbh       je          shl         cj
    ---------- ----------- ----------- ------------------------------
    mdj123     10          5           1
    mdj124     5           1           (2 行受影响)
    */
      

  4.   


    select a.*,isnull(b.cj,'')
    from a leftjoin b on a.djbh=b.djbh