1、两张表结构相同,但一张有1000条记录,另一张有960条记录,这960条包含在1000条之中,如何用sql语句查出这40条记录来,这个语句以前会,但时间太长,忘了。
2、程序需要做一个发票的入库出库,后台表该如何建会比较合理。

解决方案 »

  1.   

    select *  from b where b.id not in (select id from a)
      

  2.   

    1.select *  from b where b.id not in (select id from a)
    2.如果业务量不大的话,发票的入库出库建到一张表里,通过标识字段区分是入库还是出库,建一个视图,显示库存,方便简单。
      

  3.   

    zwfhome1(任由风吹) ( ) 信誉:100  2005-11-25 07:57:00  得分: 0  
     
     
       1.select *  from b where b.id not in (select id from a)
    2.如果业务量不大的话,发票的入库出库建到一张表里,通过标识字段区分是入库还是出库,建一个视图,显示库存,方便简单。  
     关于第二点,一般来说,至少需要有一个出入库单流水父表、出入库流水子表、出入库类型字典表、商品基本信息表、商品类别表、当前库存表。通过存储过程同时对两个流水表和库存表进行操作。
      

  4.   

    假设b是1000条记录的表,a是960条记录的表,userid是他们的主键,则select * from b where  not exists (select * from a where a.userid=b.userid)用exists要比用in效率高
      

  5.   

    select * from a(1000条)
    where NOT EXISTS
    (select * from b(960条))