+----------+------+
| 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  |
+------+

解决方案 »

  1.   

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

  2.   

    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)  datetable b
    1,"13357155122","106"
    2,"13357155120","107"
    3,"13357155121","108"
    4,"13357155122","108"
    自段为:id number(text) num(text)谢谢了!
      

  3.   

    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)
    不知你要的是什么结果????