日期:2014-05-17  浏览次数:20473 次

如何建立mysql表之间的关系?
已知:
S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

我现在建立了三个表:

CREATE TABLE S(
SNO VARCHAR(10) PRIMARY KEY,
SNAME VARCHAR(20) NOT NULL
);

CREATE TABLE C(
CNO VARCHAR(10) PRIMARY KEY,
CNAME VARCHAR(10) NOT NULL,
CTEACHER VARCHAR(5) NOT NULL
);

CREATE TABLE SC(
SNO VARCHAR(10) NOT NULL,
CNO VARCHAR(10) NOT NULL,
SCGRADE VARCHAR(3) NOT NULL
);


现在想用
SELECT SNAME FROM S WHERE NOT EXISTS(
SELECT * FROM C,SC WHERE C.CNO=SC.CNO AND S.SNO=SC.SNO
AND C.CTEACHER='李兴华'
);

查询没有学李兴华老师授课的所有学生,为什么结果是 Empyt set(0.00 sec)
是不是我建立表关系有错?求大神指教!!!感激不尽!!!
mysql

------解决方案--------------------

--MSSQL
SELECT SNAME FROM S
JOIN SC ON SC.SNO=S.SNO
JOIN C ON SC.CNO=C.CNO
WHERE C.CTEACHER='李兴华'

------解决方案--------------------
错误是什么呢? 还是说mysql不支持语法。。建议去MYSQL版问问。最近好多MYSQL都跑到SQL SERVRE版了,好奇怪。
------解决方案--------------------
引用:
方便留个联系方式么?我初学sql


你写的语句是对的呀,没有错,你能把你表里面的数据贴出来看看呢。