# phpMyAdmin SQL Dump
# version 2.5.6
# http://www.phpmyadmin.net
#
# 主机: localhost
# 生成日期: 2011 年 04 月 28 日 12:37
# 服务器版本: 5.1.51
# PHP 版本: 5.1.6

# 数据库 : `zhce`
# # --------------------------------------------------------#
# 表的结构 `tab1`
#CREATE TABLE `tab1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;#
# 导出表中的数据 `tab1`
#INSERT INTO `tab1` (`id`, `name`) VALUES (1, 'A'),
(2, 'B'),
(3, 'C'),
(4, 'D'),
(5, 'E');# --------------------------------------------------------#
# 表的结构 `tab2`
#CREATE TABLE `tab2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;#
# 导出表中的数据 `tab2`
#INSERT INTO `tab2` (`id`, `name`) VALUES (1, 'B'),
(2, 'E');
---------------------
我要的结果:
A
C
D

解决方案 »

  1.   

    select name from tab1 where name not in (select name from tab2);
      

  2.   

    select `name` from `tab1` where `name` not in (select `name` from `tab2`);
    select `name` from `tab1` where not exists (select 1` from `tab2` where `name`=`tab1`.`name` );
    select `tab1`.`name` from `tab1` left join `tab2` on tab1`.`name`=`tab2`.`name` where `tab2`.`name` is null;
      

  3.   

    select a.`name` from `tab1` a left join `tab2` b on a.`name`=b.`name` where b.`name` is null;
      

  4.   

    谢谢各位大侠。还想请教个事:
    二个表各有16000条记录,想修改某个表中的某字段的值。可以通过这种条件去直接执行SQL语句吗?会不会影响数据呢?给四掉