我想实现的是
比如现在二表有了一列中国历史的值 而且这列值是计算机科学与技术2班的人做的 那我就想通过班级 和 科目这一值来确定 只有这个计算机科学与技术2班的人 谁没有参加 而不是除了二表出现的剩下所有的一表信息
直白点就是 只有二表有了考试的信息 才能知道哪个班级考了什么考试 这样才有数据能去一表(总的人员信息表)查询这个班谁没参加这门考试
一表DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`userid` varchar(15) NOT NULL COMMENT '用户账号',
`userpassword` varchar(20) NOT NULL COMMENT '用户密码',
`username` varchar(15) NOT NULL COMMENT '用户姓名',
`userclass` varchar(15) NOT NULL COMMENT '用户班级 教师所属院系',
`userpower` int(11) NOT NULL COMMENT '用户权限1学生2教师',
`userisin` int(1) NOT NULL DEFAULT '0' COMMENT '是否登入',
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user_info`(`userid`,`userpassword`,`username`,`userclass`,`userpower`,`userisin`) values
('1','1','韩世宏','计算机科学与技术2班',2,0),
('2','2','刘美伶','计算机科学与技术2班',1,0),
('3','3','康鑫','计算机科学与技术2班',1,0),
('6','6','王磊','计算机科学与技术3班',1,0),
('7','7','郝光辉','计算机科学与技术3班',1,0),
('8','8','刘建','计算机科学与技术3班',1,0),
('9','9','TeacherW','数理学院',2,0);二表DROP TABLE IF EXISTS `student_signininfo`;
CREATE TABLE `student_signininfo` (
`student_id` varchar(15) NOT NULL COMMENT '学生学号',
`student_class` varchar(15) NOT NULL COMMENT '学生班级',
`student_name` varchar(15) NOT NULL COMMENT '学生姓名',
`test_kemu` varchar(15) NOT NULL COMMENT '考试科目',
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `student_signininfo`(`student_id`,`student_class`,`student_name`,`test_kemu`) values
('1','计算机科学与技术2班','韩世宏','中国历史'),
('2','计算机科学与技术2班','刘美伶','中国历史');
('2','计算机科学与技术2班','刘美伶','JAVA');先谢谢了
比如现在二表有了一列中国历史的值 而且这列值是计算机科学与技术2班的人做的 那我就想通过班级 和 科目这一值来确定 只有这个计算机科学与技术2班的人 谁没有参加 而不是除了二表出现的剩下所有的一表信息
直白点就是 只有二表有了考试的信息 才能知道哪个班级考了什么考试 这样才有数据能去一表(总的人员信息表)查询这个班谁没参加这门考试
一表DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`userid` varchar(15) NOT NULL COMMENT '用户账号',
`userpassword` varchar(20) NOT NULL COMMENT '用户密码',
`username` varchar(15) NOT NULL COMMENT '用户姓名',
`userclass` varchar(15) NOT NULL COMMENT '用户班级 教师所属院系',
`userpower` int(11) NOT NULL COMMENT '用户权限1学生2教师',
`userisin` int(1) NOT NULL DEFAULT '0' COMMENT '是否登入',
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user_info`(`userid`,`userpassword`,`username`,`userclass`,`userpower`,`userisin`) values
('1','1','韩世宏','计算机科学与技术2班',2,0),
('2','2','刘美伶','计算机科学与技术2班',1,0),
('3','3','康鑫','计算机科学与技术2班',1,0),
('6','6','王磊','计算机科学与技术3班',1,0),
('7','7','郝光辉','计算机科学与技术3班',1,0),
('8','8','刘建','计算机科学与技术3班',1,0),
('9','9','TeacherW','数理学院',2,0);二表DROP TABLE IF EXISTS `student_signininfo`;
CREATE TABLE `student_signininfo` (
`student_id` varchar(15) NOT NULL COMMENT '学生学号',
`student_class` varchar(15) NOT NULL COMMENT '学生班级',
`student_name` varchar(15) NOT NULL COMMENT '学生姓名',
`test_kemu` varchar(15) NOT NULL COMMENT '考试科目',
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `student_signininfo`(`student_id`,`student_class`,`student_name`,`test_kemu`) values
('1','计算机科学与技术2班','韩世宏','中国历史'),
('2','计算机科学与技术2班','刘美伶','中国历史');
('2','计算机科学与技术2班','刘美伶','JAVA');先谢谢了
FROM user_info a
LEFT JOIN student_signininfo b ON a.userid = b.student_id
LEFT JOIN student_signininfo c ON a.userclass = c.student_class
WHERE a.userpower = 1 AND a.userclass = '计算机科学与技术2班' AND c.test_kemu = '中国历史' AND b.student_id IS NULL;