客户基本信息表 custinfo
客户联系信息表 relation
客户人员信息表 personinfo
客户情报信息表 intelligence一个客户对应一个基本信息 多条联系信息 多条人员信息 多条情报信息 关联字段是custid  现在要删除客户基本信息(做级联删除)同时删除其关联的所有信息,并且是做逻辑删除(就是update语句) 每张表有个字段(isdelete  0表示删除  1表示未删除) 同时有个客户其对应的关联信息或者人员信息或者情报信息又不一定存在 这样的sql语句怎么写 

解决方案 »

  1.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    谢谢各位的建议 我把表的结构贴出来吧mysql> desc custinfo;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | isdelete   | varchar(10) | NO   |     | NULL    |       |
    | custid     | varchar(60) | NO   | PRI | NULL    |       |
    | cus_custid | varchar(60) | NO   | MUL | NULL    |       |
    | custname   | varchar(60) | NO   |     | NULL    |       |
    | custsumm   | text        | YES  |     | NULL    |       |
    | custtype   | int(11)     | YES  |     | NULL    |       |
    | custmng    | varchar(60) | YES  |     | NULL    |       |
    | offadd     | varchar(60) | YES  |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    8 rows in setmysql> desc relation;
    +------------+--------------+------+-----+---------+-------+
    | Field      | Type         | Null | Key | Default | Extra |
    +------------+--------------+------+-----+---------+-------+
    | isdelete   | varchar(10)  | NO   |     | NULL    |       |
    | custid     | varchar(60)  | NO   |     | NULL    |       |
    | postcode   | varchar(60)  | YES  |     | NULL    |       |
    | reladd     | varchar(60)  | YES  |     | NULL    |       |
    | relationid | varchar(255) | NO   | PRI | NULL    |       |
    +------------+--------------+------+-----+---------+-------+
    5 rows in setmysql> desc personinfo;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | isdelete   | varchar(10) | NO   |     | NULL    |       |
    | custid     | varchar(60) | NO   |     | NULL    |       |
    | nativeinfo | varchar(20) | YES  |     | NULL    |       |
    | orelway    | varchar(40) | YES  |     | NULL    |       |
    | email      | varchar(40) | YES  |     | NULL    |       |
    | fetion     | varchar(20) | YES  |     | NULL    |       |
    | msn        | varchar(20) | YES  |     | NULL    |       |
    | qq         | varchar(20) | YES  |     | NULL    |       |
    | relway     | varchar(60) | YES  |     | NULL    |       |
    | otherphone | varchar(20) | YES  |     | NULL    |       |
    | offphone   | varchar(20) | YES  |     | NULL    |       |
    | homephone  | varchar(20) | NO   |     | NULL    |       |
    | tel2       | varchar(20) | YES  |     | NULL    |       |
    | tel1       | varchar(20) | NO   |     | NULL    |       |
    | duty       | varchar(60) | NO   |     | NULL    |       |
    | deptid     | varchar(60) | NO   |     | NULL    |       |
    | nation     | varchar(5)  | NO   |     | NULL    |       |
    | sex        | varchar(2)  | NO   |     | NULL    |       |
    | pername    | varchar(60) | NO   |     | NULL    |       |
    | personid   | varchar(60) | NO   | PRI | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    20 rows in setmysql> mysql> desc intelligence;
    +----------+--------------+------+-----+---------+-------+
    | Field    | Type         | Null | Key | Default | Extra |
    +----------+--------------+------+-----+---------+-------+
    | isdelete | varchar(10)  | NO   |     | NULL    |       |
    | custid   | varchar(60)  | NO   |     | NULL    |       |
    | pottime  | varchar(60)  | NO   |     | NULL    |       |
    | optrid   | varchar(60)  | NO   |     | NULL    |       |
    | source   | varchar(60)  | NO   |     | NULL    |       |
    | level    | varchar(20)  | NO   |     | NULL    |       |
    | keywords | varchar(60)  | NO   |     | NULL    |       |
    | digest   | varchar(100) | NO   |     | NULL    |       |
    | content  | text         | NO   |     | NULL    |       |
    | title    | varchar(60)  | NO   |     | NULL    |       |
    | intelid  | varchar(60)  | NO   | PRI | NULL    |       |
    +----------+--------------+------+-----+---------+-------+
    11 rows in set
    现在删除一个客户基本信息 同时删除其对应的信息 逻辑删除 update语句  
      

  3.   

      参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
      

  4.   

    同意楼上的...可以看看http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
      

  5.   

    custinfo表/*
    MySQL Data Transfer
    Source Host: 192.168.1.200
    Source Database: first
    Target Host: 192.168.1.200
    Target Database: first
    Date: 2010/4/26 11:08:16
    */SET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for custinfo
    -- ----------------------------
    CREATE TABLE `custinfo` (
      `isdelete` varchar(10) NOT NULL,
      `custid` varchar(60) NOT NULL,
      `cus_custid` varchar(60) NOT NULL,
      `custname` varchar(60) NOT NULL,
      `custsumm` text,
      `custtype` int(11) default NULL,
      `custmng` varchar(60) default NULL,
      `offadd` varchar(60) default NULL,
      PRIMARY KEY  (`custid`),
      KEY `FK_cc` (`cus_custid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records 
    -- ----------------------------
    INSERT INTO `custinfo` VALUES ('1', 'CB100400009410', 'CB100400009018', 'sfds', 'fssfdfsd', '1', 'ffff', 'sdfdsfsdfd');
    INSERT INTO `custinfo` VALUES ('0', 'CB100400009018', 'no', 'jani', '好男人', '1', '111', 'Hefei');
    INSERT INTO `custinfo` VALUES ('1', 'CB100400009022', '', 'gbq', 'laji', '2', '222', 'HeFei');
    INSERT INTO `custinfo` VALUES ('1', 'CB100400009412', 'CB100400009410', 'fds', 'fsad', '0', 'fds', 'fds');
    INSERT INTO `custinfo` VALUES ('1', 'CB100400009413', 'CB100400013862', 'fsdafdsa', 'fdsa', '0', 'fdsfdsa', 'fsda');intelligence 表/*
    MySQL Data Transfer
    Source Host: 192.168.1.200
    Source Database: first
    Target Host: 192.168.1.200
    Target Database: first
    Date: 2010/4/20 17:45:35
    */SET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for intelligence
    -- ----------------------------
    CREATE TABLE `intelligence` (
      `custid` varchar(60) NOT NULL,
      `pottime` varchar(60) NOT NULL,
      `optrid` varchar(60) NOT NULL,
      `source` varchar(60) NOT NULL,
      `level` varchar(20) NOT NULL,
      `keywords` varchar(60) NOT NULL,
      `digest` varchar(100) NOT NULL,
      `content` text NOT NULL,
      `title` varchar(60) NOT NULL,
      `intelid` varchar(60) NOT NULL,
      PRIMARY KEY  (`intelid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records 
    -- ----------------------------
    INSERT INTO `intelligence` VALUES ('CB100400009018', 'sdf', 'dsf', 'dsfd', 'sdf', 'sdfds', 'dsfds', ' ejisji fjdkjgjing ign', 'dsfjsdfjioawej', '001');
    INSERT INTO `intelligence` VALUES ('CB100400009018', '1988-12-08', '123', '安徽晚报', '特级', '活动', '举办活动', '2月16号举办员工抽奖活动,届时请广大观众前来观看', '有奖竞猜活动', '002');
    personinfo 表/*
    MySQL Data Transfer
    Source Host: 192.168.1.200
    Source Database: first
    Target Host: 192.168.1.200
    Target Database: first
    Date: 2010/4/20 17:47:49
    */SET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for personinfo
    -- ----------------------------
    CREATE TABLE `personinfo` (
      `custid` varchar(60) NOT NULL,
      `nativeinfo` varchar(20) default NULL,
      `orelway` varchar(40) default NULL,
      `email` varchar(40) default NULL,
      `fetion` varchar(20) default NULL,
      `msn` varchar(20) default NULL,
      `qq` varchar(20) default NULL,
      `relway` varchar(60) default NULL,
      `otherphone` varchar(20) default NULL,
      `offphone` varchar(20) default NULL,
      `homephone` varchar(20) NOT NULL,
      `tel2` varchar(20) default NULL,
      `tel1` varchar(20) NOT NULL,
      `duty` varchar(60) NOT NULL,
      `deptid` varchar(60) NOT NULL,
      `nation` varchar(5) NOT NULL,
      `sex` varchar(2) NOT NULL,
      `pername` varchar(60) NOT NULL,
      `personid` varchar(60) NOT NULL,
      PRIMARY KEY  (`personid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records 
    -- ----------------------------
    INSERT INTO `personinfo` VALUES ('CB100400009022', '安庆', '', '6542163.com', '568986432', '765467654', '3456543234', '876543', '1234567', '98765432', '4567654', '1234321234', '123333333333', '工程师', '研发部', '汉', '男', 'jianren', 'CB100400011411');
    relation表/*
    MySQL Data Transfer
    Source Host: localhost
    Source Database: first
    Target Host: localhost
    Target Database: first
    Date: 2010/4/19 9:15:13
    */SET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for relation
    -- ----------------------------
    CREATE TABLE `relation` (
      `custid` varchar(60) NOT NULL,
      `postcode` varchar(60) default NULL,
      `reladd` varchar(60) default NULL,
      `relationid` varchar(255) NOT NULL,
      PRIMARY KEY  (`relationid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records 
    -- ----------------------------
    INSERT INTO `relation` VALUES ('001', '246258', 'Anhui Hefei', '1111');
    INSERT INTO `relation` VALUES ('002', '238000', 'Anhui ChaoHu', '2222');
    INSERT INTO `relation` VALUES ('001', '222222', 'WuHu', '3333');
    INSERT INTO `relation` VALUES ('001', '123456', 'AnQing', '4444');这样应该可以了吧  谢谢各位大侠