-- ================自连接:自己的表和自己的连接,核心是-一张表拆为两张一样的表=====================CREATETABLE category (
categoryid INT(10)UNSIGNEDNOTNULLAUTO_INCREMENTCOMMENT'主题ID',
pid INT(10)NOTNULLCOMMENT'父ID',
categoryName VARCHAR(50)NOTNULLCOMMENT'主题名字',PRIMARYKEY(categoryid))ENGINE=INNODBAUTO_INCREMENT=9DEFAULTCHARSET= utf8;INSERTINTO category(categoryid,pid,categoryName)VALUES('2','1','信息技术'),('3','1','软件开发'),('4','3','数据库'),('5','1','美术设计'),('6','3','web开发'),('7','5','PS技术'),('8','2','办公信息');-- 查询父子信息SELECT a.`categoryName`AS'父栏目',b.`categoryName`AS'子栏目'FROM`category`AS a,`category`AS b
WHERE a.`categoryid`= b.`pid`
-- 查询学员所属的年级 (学号,姓名,年级)SELECT studentno,studentname,`gradename`FROM`student` s
INNERJOIN`grade` g
ON s.`gradeid`= g.`gradeid`-- 查询科目所属的年级 (科目名 年级名)SELECT`subjectname`,`gradename`FROM`subject` sub
INNERJOIN`grade` g
ON sub.`gradeid`= g.`gradeid`-- 查询参加了数据结构-1 考试的同学: 学号 姓名 科目名称 分数SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`FROM`student` s
INNERJOIN`result` r
ON s.studentno = r.studentno
INNERJOIN`subject` sub
ON r.`subjectno`= sub.subjectno
WHERE subjectname ='C语言-1'