已知detail表有三个值,Id、projectId、deptId、name,project表有三个值Id、deptId、projectName,dept表有两个值Id、deptName(detail表里面projectId为0时,deptId不为0;deptId不为0时,projectId可能为0)。现在要连表,使detail表里面的deptId都变成不为0的值,并且最后得到包含Id、projectId、deptId、name、deptName的表数据
下面是sql文件
SET FOREIGN_KEY_CHECKS=0;
-- Table structure for dept
DROP TABLE IF EXISTS dept
;
CREATE TABLE dept
(id
int(11) NOT NULL,deptName
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of dept
INSERT INTO dept
VALUES ('1', '一部');
INSERT INTO dept
VALUES ('2', '二部');
INSERT INTO dept
VALUES ('3', '三部');
-- Table structure for detail
DROP TABLE IF EXISTS detail
;
CREATE TABLE detail
(id
int(255) NOT NULL,projectId
int(255) DEFAULT NULL,deptId
int(255) DEFAULT NULL,name
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of detail
INSERT INTO detail
VALUES ('1', '0', '1', '王大');
INSERT INTO detail
VALUES ('2', '1', '0', '王二');
INSERT INTO detail
VALUES ('3', '2', '0', '王三');
INSERT INTO detail
VALUES ('4', '3', '2', '王四');
INSERT INTO detail
VALUES ('5', '0', '2', '王五');
-- Table structure for project
DROP TABLE IF EXISTS project
;
CREATE TABLE project
(id
int(11) NOT NULL,projectname
varchar(255) DEFAULT NULL,deptId
int(11) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of project
INSERT INTO project
VALUES ('1', '广西', '1');
INSERT INTO project
VALUES ('2', '广东', '1');
INSERT INTO project
VALUES ('3', '安徽', '2');
INSERT INTO project
VALUES ('4', '湖南', '2');
INSERT INTO project
VALUES ('5', '湖北', '3');