有A,B两个表,做连接查询select *
froom A,B
where A.ID=B.ID AND A.MC=B.MCselect *
from A
where ID in (select ID from B) and MC in (select MC from B)可查出来的结果记录数不一样

解决方案 »

  1.   

    select * 
    froom A,B 
    where A.ID=B.ID AND A.MC=B.MC
    --查询的是A,B两表ID,和MC相同的AB表的所有记录select * 
    from A 
    where ID in (select ID from B) and MC in (select MC from B) 
    --查询的是A表中ID和MC在B中同时存在的记录
      

  2.   

    本帖最后由 libin_ftsafe 于 2009-07-09 17:26:25 编辑
      

  3.   

    那是当然。
    第一个是做的 star join,所以记录数最多应该是 A*B
    第二个是在第一个表里面做了个筛选,所以记录数最多是 A例如 表A。
    ID MC
    1  10
    2  20
    表B
    ID MC
    1  10
    1  10
    1  10
    2  20
    2  20第一个结果应该是 5 条记录
    第二个是 2 条记录。
      

  4.   


    select * 
    froom A,B 
    where A.ID=B.ID AND A.MC=B.MC 
    A,B 俩表中ID与MC 相同的所有记录 A*B 表。
    select * 
    from A 
    where ID in (select ID from B) and MC in (select MC from B)
    查询A表中 ID在B 与MC 在B 中的  A表