我这有两个表D1和D2,D1中有d1字段,D2中有d2字段,d1中有些是和d2相同,我想在D1中找出不同的记录,该怎么编写SQL语句。

解决方案 »

  1.   

    select d1.* from d1 where not exists(select 1 from d2 where d2.d2 = d1.d1)select d1.* from d1 where d1 not in (select d2 from d2)
      

  2.   

    select distinct D1.d1 from D1,D2 WHERE D1.d1<>D2.d2 为什么不行
    你写的我看下,没错就结贴
      

  3.   

    SELECT * FROM
    (
    SELECT d1 FROM D1
    UNION ALL
    SELECT d2 FROM D2
    ) a
    GROUP BY d1
    HAVING COUNT(*) = 1
      

  4.   


    declare @D1 table (D1 int)
    insert into @D1
    select 1 union all
    select 2 union all
    select 3 union all
    select 4declare @D2 table (D2 int)
    insert into @D2
    select 2 union all
    select 3 union all
    select 5 union all
    select 6SELECT a.* FROM @D1 a LEFT JOIN @D2 b ON a.D1=b.D2
    WHERE  b.D2 IS NULL
    /*
    D1
    -----------
    1
    4
    */
      

  5.   


    select d1 from tb_D1
    except
    select d2 from tb_D2
      

  6.   

    CREATE TABLE D1(d1 INT)
    INSERT INTO D1
    SELECT 1 UNION ALL
    SELECT 2CREATE TABLE D2(d2 INT)
    INSERT INTO D2
    SELECT 2 UNION ALL
    SELECT 3--select distinct D1.d1 from D1,D2 WHERE D1.d1<>D2.d2 语句的执行步骤
    SELECT * FROM D1,D2 --A
    SELECT * FROM (SELECT * FROM D1,D2)A WHERE d1 <> d2 --B
    SELECT DISTINCT d1 FROM (SELECT * FROM (SELECT * FROM D1,D2)B WHERE d1 <> d2)C --C
      

  7.   

    select d1.* from d1 where d1 not in (select d2 from d2)
      

  8.   


    SELECT COLUMNS FROM D1 WHERE NOT EXSITS (
           SELECT 1 FROM D2 WHERE D1.d1 = D2.d2
    )
      

  9.   

    SELECT * FROM D1  where d1 not in (select d2 from D2);