select * from BC where BcId not in(select XfId from XF)

解决方案 »

  1.   

    IN查询效率太低,如果是SQL Server:查找在BC中存在,但在XF中不存在的记录
    SELECT BC.*,XF.* 
    FROM BC
    LEFT OUTER JOIN XF ON XF.XfDate=BC.BcDate AND XF.XfSort=BC.BcSort
    WHERE XF.XfSort IS NULL查找在XF中存在,但在BC中不存在的记录
    SELECT BC.*,XF.* 
    FROM BC
    RIGHT OUTER JOIN XF ON XF.XfDate=BC.BcDate AND XF.XfSort=BC.BcSort
    WHERE BC.BcSort IS NULL大致是这样的,没具体测试
      

  2.   

    BC表:
    BcNo BcName BcDate         BcSort
    7369 李玫 2002-11-23 晚 餐
    7654 刘义 1905-5-21          晚 餐
    7653 谷征 2002-11-23 晚 餐
    7655 - 1905-5-21          早 餐
    7699 陈胜          晚 餐
    7369 李玫                   午 餐
    XF 表:
    XfNo XfName XfDate         XFSort
    7369 李玫 2002-11-23 晚 餐
    7499 王明 2002-11-23 晚 餐
    7654 刘义 1905-5-21          晚 餐
    7521 张玉华 1905-5-21          早 餐
    7369 李玫 2002-11-25 午 餐
    0 - 1905-5-19
      

  3.   

    hycao(海草) 你的方法我度过不能,BCNO,XFNO 不是唯一的,在同一个表相同时就不能有预期效果 junwhj(junwhj.myrice.com)的我不会转成VB格式,试不到可以用VB写详细点吗??????????我的目的是可以在网格显示出两个表不相同的部份
    如:BcDate字段值与XfDate字段值相等
                和
        BcSort字段值与XfSort字段值相等
    都成立时就不用显示,只显示其余不成立的部份
      

  4.   

    select * from BC where BcNo not in(select XfNo from XF) '表BC不同于XF
    union all
    select * from XF where XfNo not in(select BcNo form BC) '表XF不同于BC
      

  5.   

    select * from BC a left outer join XF b
    on a.BcDate =b.xfDate  and a.sort=b.sort
    union 
    select * from BC a right outer join XF b
    on a.BcDate =b.xfDate  and a.sort=b.sort
      

  6.   

    原来 litsnake1(litsnake) ,hycao(海草) 的方法是可行的,不过要加入过滤条件
    多谢!!!!!!!!!!!!