关于三张表查询的问题,很简单,请指教!
大家好:
有个问题想请教大家,是关于联合三张表查询的问题
我有三张表,如下;
CREATE TABLE `ktinfo` (
`KtNum` int(10) NOT NULL auto_increment,
`KtName` varchar(100) default NULL,
`KtSort` int(10) default NULL,
`TNum` int(10) default NULL,
`KtIntro` text,
PRIMARY KEY (`KtNum`),
KEY `TNum` (`TNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `stuinfo` (
`StuNum` int(10) NOT NULL default '0',
`StuName` varchar(50) default NULL,
`StuEmail` varchar(50) default NULL,
`StuTel` varchar(50) default NULL,
`KetiId` int(10) default NULL,
`StuInfo` longtext,
`KaitiIf` tinyint(1) unsigned NOT NULL default '0',
`BiyeIf` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`StuNum`),
KEY `KetiId` (`KetiId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `teacherinfo` (
`TNum` int(10) NOT NULL default '0',
`TName` varchar(10) default NULL,
`TTel` varchar(12) default NULL,
`TEmail` varchar(50) default NULL,
`TZc` int(10) default NULL,
`TGroup` int(10) default NULL,
PRIMARY KEY (`TNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
现在我想在ktinfo表中查出KetiId字段在stuinfo表中没有的记录,且ketinfo表中TNum为一查询量
目的实际就是要查出没有被别的学生所选择的这个导师的所有课题
最好能够使用sql语句来完成,我写的如下:
String sql = "select * from KtInfo (select * from KtInfo where KtNum not in(select KetiId from StuInfo)) where TNum = "+TNum+"";
但是错误的。
同时我也希望能够把
select * from KtInfo where KtNum not in(select KetiId from StuInfo)
这个结果存在array中,但是不知道怎么进行下一步筛选了。
这个小问题还劳烦大家帮帮忙了!十分感谢