CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  MySQL/Postgresql

请教高手,为什么两句语句执行后结果是一样的?

楼主zjxscj(zjxscj)2003-05-03 09:44:59 在 其他数据库开发 / MySQL/Postgresql 提问

1:select   num   from   a   where   number<>'123456'   and   num   not   in("selcect   num   from   b   where   number='123456'")  
  2:select   num   from   a   where   number<>'123456'  
  3:select   num   from   a   where   num   not   in("selcect   num   from   b   where   number='123456'")  
  为什么这三句执行后是一样的结果,但是b里确实有和a一样结果存在.  
  比如:a的结果:106,107,108  
              b的结果;   106,108  
  那么是不是返回值应该是:107 问题点数:20、回复次数:9Top

1 楼shuixin13(犬犬(心帆))回复于 2003-05-03 10:36:34 得分 0

A,B   表的数据呢??Top

2 楼zjxscj(zjxscj)回复于 2003-05-03 11:13:48 得分 0

不是写着了吗?  
  a的结果:123456   106,1234567   107,123458   108  
  b的结果;   123456   106,123456   108  
  Top

3 楼swotcoder(苦 丁 www.help2u.org)回复于 2003-05-03 11:30:40 得分 0

问你里边放了些什么Top

4 楼zjxscj(zjxscj)回复于 2003-05-03 11:48:18 得分 0

A表内的内容:123456   106,1234567   107,123458   108  
  B表内的内容:   123456   106,123456   108  
   
  是这个啊!!  
   
  Top

5 楼shuixin13(犬犬(心帆))回复于 2003-05-03 12:07:34 得分 0

+----------+------+  
  |   number       |   num     |  
  +----------+------+  
  |   123456       |   106     |  
  |   1234567     |   107     |  
  |   123458       |   108     |  
  +----------+------+  
   
  +----------+------+  
  |   number       |   num     |  
  +----------+------+  
  |   123456       |   106     |  
  |   123456       |   108     |  
  +----------+------+  
   
  selcect   num   from   b   where   number='123456'  
  +------+  
  |   num     |  
  +------+  
  |   106     |  
  |   108     |  
  +------+  
   
  tA.num   not   in("selcect   num   from   b   where   number='123456'")  
  +------+  
  |   num     |  
  +------+  
  |   107     |  
  +------+Top

6 楼zjxscj(zjxscj)回复于 2003-05-03 13:30:29 得分 0

select   num   from   a   where   a.num   not   in("select   num   from   b   where   number='123456'")  
  我是这样写的,问题是结果是;106,107,108    
  这是为什么?Top

7 楼shuixin13(犬犬(心帆))回复于 2003-05-03 15:03:25 得分 0

呵呵,  
  问题比较奇怪,  
  你将你的数据导出来,  
  帖出来,我在我这给你试一下吧Top

8 楼zjxscj(zjxscj)回复于 2003-05-03 15:15:00 得分 0

table   a  
  14,"guest","13357155121","108","18","女",2003-5-2   0:00:00  
  13,"小白","13357155120","107","18","女",2003-5-2   0:00:00  
  12,"啊骏","13357155122","106","28","男",2003-5-2   0:00:00  
   
  字段为:id     name(text)   number(text)   num(text)   age(text)     sex(text)     date  
   
  table   b  
  1,"13357155122","106"  
  2,"13357155120","107"  
  3,"13357155121","108"  
  4,"13357155122","108"  
  自段为:id   number(text)   num(text)  
   
  谢谢了!Top

9 楼shuixin13(犬犬(心帆))回复于 2003-05-03 16:52:21 得分 20

CREATE   TABLE   `ta`   (  
      `id`   tinyint(3)   unsigned   NOT   NULL   default   '0',  
      `name`   varchar(10)   default   NULL,  
      `number`   varchar(20)   default   NULL,  
      `num`   char(3)   default   '0',  
      `age`   char(3)   default   NULL,  
      `sex`   char(2)   default   NULL,  
      `date`   datetime   default   NULL,  
      PRIMARY   KEY     (`id`),  
      KEY   `name`   (`name`),  
      KEY   `number`   (`number`),  
      KEY   `num`   (`num`)  
  )   TYPE=MyISAM;  
   
   
  INSERT   INTO   `ta`   (`id`,   `name`,   `number`,   `num`,   `age`,   `sex`,   `date`)  
    VALUES  
    ("12",   "啊骏",   "13357155122",   "106",   "28",   "男",   "2003-05-02   00:00:00"),  
    ("13",   "小白",   "13357155120",   "107",   "18",   "女",   "2003-05-02   00:00:00"),  
    ("14",   "guest",   "13357155121",   "108",   "18",   "女",   "2003-05-02   00:00:00");  
   
   
  CREATE   TABLE   `tb`   (  
      `id`   tinyint(3)   unsigned   NOT   NULL   default   '0',  
      `number`   varchar(20)   NOT   NULL   default   '',  
      `num`   char(3)   NOT   NULL   default   '',  
      PRIMARY   KEY     (`id`),  
      KEY   `num`   (`num`),  
      KEY   `number`   (`number`)  
  )   TYPE=MyISAM   CHARSET=latin1;  
   
   
  INSERT   INTO   `tb`   (`id`,   `number`,   `num`)  
    VALUES  
    ("1",   "13357155122",   "106"),  
    ("2",   "13357155120",   "107"),  
    ("3",   "13357155121",   "108"),  
    ("4",   "13357155122",   "108");  
     
     
     
  mysql>   SELECT   `num`   FROM   `tB`   WHERE   `number`   ='13357155122';  
  +-----+  
  |   num   |  
  +-----+  
  |   106   |  
  |   108   |  
  +-----+  
  2   rows   in   set   (0.00   sec)  
   
  mysql>   SELECT   *   FROM   `tA`   WHERE   `num`   NOT   IN   (SELECT   `num`   FROM   `tB`   WHERE   `numb  
  er`   ='13357155122');  
  +----+------+-------------+------+------+------+---------------------+  
  |   id   |   name   |   number             |   num     |   age     |   sex     |   date                                 |  
  +----+------+-------------+------+------+------+---------------------+  
  |   13   |   小白   |   13357155120   |   107     |   18       |   女       |   2003-05-02   00:00:00   |  
  +----+------+-------------+------+------+------+---------------------+  
  1   row   in   set   (0.00   sec)  
     
  mysql>   SELECT   *   FROM   `tA`   WHERE   `number`   <>'13357155122'   AND   `num`   NOT   IN   (SELEC  
  T   `num`   FROM   `tB`   WHERE   `number`   ='13357155122');  
  +----+------+-------------+------+------+------+---------------------+  
  |   id   |   name   |   number             |   num     |   age     |   sex     |   date                                 |  
  +----+------+-------------+------+------+------+---------------------+  
  |   13   |   小白   |   13357155120   |   107     |   18       |   女       |   2003-05-02   00:00:00   |  
  +----+------+-------------+------+------+------+---------------------+  
  1   row   in   set   (0.00   sec)  
   
   
   
   
  不知你要的是什么结果????Top

相关问题

  • 这两个SQL语句执行的结果为什么不一样?
  • SQL语句的执行结果问题
  • 两段sql语句分别执行后的结果集和通过union结合后执行产生的记录数不一样,请问是什么原因?
  • 怎样做一个像sql server的查询分析器一样的程序,就是输入sql语句,然后执行返回结果?
  • 怎样做一个像sql server的查询分析器一样的程序,就是输入sql语句,然后执行返回结果?
  • 奇怪!相同数据库,相同语句,不同机器执行结果不一样?人品问题?帮我看看。
  • 怎样把sql语句的执行结果放到变量里?
  • 如果得到语句执行是否成功的结果?
  • 使用union时,语句1和语句2中两句执行时对数据库的影响一样吗?
  • 执行SELECT语句后能否获得其返回结果的行数

关键词

  • date
  • null
  • num
  • selcect
  • number
  • 结果
  • ta
  • tb
  • sex
  • default

得分解答快速导航

  • 帖主:zjxscj
  • shuixin13

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo