SELECT a.`课程名`,a.`课程类别`,a.`学分`,b.`教师编号`,b.`学年`,b.`学期`,b.`学时`,d.`姓名` AS `教师名`
FROM `课程信息表` AS a
LEFT OUTER JOIN `教师授课信息表` AS b ON b.`课程编号`=a.`课程编号`
LEFT OUTER JOIN `教师表` AS d ON d.`教师编号`=b.`教师编号`
WHERE
a.`课程编号` NOT IN (SELECT c.`课程编号` FROM `学生选课信息表` AS c WHERE c.`学号`='95001');
FROM `课程信息表` AS a
LEFT OUTER JOIN `教师授课信息表` AS b ON b.`课程编号`=a.`课程编号`
LEFT OUTER JOIN `教师表` AS d ON d.`教师编号`=b.`教师编号`
WHERE
a.`课程编号` NOT IN (SELECT c.`课程编号` FROM `学生选课信息表` AS c WHERE c.`学号`='95001');
但我看资料上说MYSQL 不支持子查询的??
从这个提示来看 我的好象不支持子查询,可是我的MYSQL 是 4.1.8的版本呀?
请问有没有不用子查询的方式实现》???
这句好像和刚才我写的不太一样,course是什么表?
FROM course, teacher, tc
WHERE tc.cid = course.courid
AND tc.tid = teacher.TID
AND course.courid NOT
IN (
SELECT course.courseid
FROM course, selclass
WHERE course.courid = selcalss.courseid
AND selclass.stuno = '3001099'
)
LIMIT 0 , 30
MySQL 返回: #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select course.courseid from course,selclass where course.courid
上面是我在PHPMYADMIN 里输入的语句的返回,其中course 是课程表,tc是教师授课信息表,teacher是教师信息表,selclass是选课信息表。请看一下
FROM course
LEFT OUTER JOIN tc on tc.课程编号`=course.`课程编号`
LEFT OUTER JOIN teacher on teacher.`教师编号`=tc.`教师编号`
where
course.`课程编号` NOT IN (SELECT selclass.`课程编号` FROM selclass WHERE selclass.`学号`='3001099');把上句中的汉字字段替换成你在表中使用的字段名,注意字段名前面有表名。
您能不能帮我想个不用子查询的方法???
再麻烦你一下。
FROM course
LEFT OUTER JOIN tc on tc.cid=course.courid
LEFT OUTER JOIN teacher on teacher.TID=tc.tid
where
course.courid NOT IN (SELECT selclass.courseid FROM selclass WHERE selclass.stuno='3001099');------------------------
另外,你可以执行下面这句查询,如果能返回结果,就说明你的mysql支持子查询。
SELECT course.courname, course.courkind, course.credit
FROM course where course.courid NOT IN (SELECT selclass.courseid FROM selclass WHERE selclass.stuno='3001099');
我把语句的错误都改好了,还是不行,你加我qq,好好教教我18598396,MSN [email protected]