为什么
SELECT c.* FROM CUSTOMER WHERE CUSTOMER_NAME like '%汕头市奔腾科技有限公司%' and (CUSTOMER.pkcorp='1081' or customer.customer_pk in (select customer_pk from customermaster where pkcorp = '1081'));
结果一条记录;
SELECT c.* FROM CUSTOMER c,customermaster cm where c.CUSTOMER_NAME like '%汕头市奔腾科技有限公司%' and (c.pkcorp='1081' or (c.customer_pk=cm.customer_pk and cm.pkcorp='1081'));
结果68万条记录;(customermaster这个表正好一共68万条记录)
小弟比较初级,麻烦同志们帮忙解释一下,再次谢过了。

解决方案 »

  1.   

    第一条语句写错了,没有c.
    应该是
    SELECT * FROM CUSTOMER WHERE CUSTOMER_NAME like '%汕头市奔腾科技有限公司%' and (CUSTOMER.pkcorp='1081' or customer.customer_pk in (select customer_pk from customermaster where pkcorp = '1081'));
      

  2.   

    两个语句的意思是完全不一样的
    你的第二个的结果说明:
    CUSTOMER表中存在一条CUSTOMER_NAME like '%汕头市奔腾科技有限公司%' and pkcorp='1081'的记录
    如果
    CUSTOMER表中存在两条CUSTOMER_NAME like '%汕头市奔腾科技有限公司%' and pkcorp='1081'的记录
    则你的结果应是68W*2条记录
      

  3.   

    你又不要取customermaster的数据,没有必要用联结。