联表查询
JOIN 对比

-- =============== 联表查询 join ============= -- 查询参加了考试的同学(学号,姓名,科目编号,分数) SELECT * FROM student SELECT * FROM result /* 思路 1.分析需求,分析查询的字段来自哪些表,(连接查询) 2.确定使用哪种连接查询,7种 确定交叉点(这两个表中哪个数据是相同的) 判断的条件: 学生表中的 studentNo = 成绩表 studentNo */ SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult` FROM student AS s INNER JOIN result AS r ON s.`studentno` = r.`studentno` -- Right join SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult` FROM student s RIGHT JOIN result r ON s.`studentno` = r.`studentno` -- Left join SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult` FROM student s LEFT JOIN result r ON s.`studentno` = r.`studentno`
| 操作 | 描述 | 
|---|---|
| Inner join | 如果表中至少有一个匹配,就返回行 | 
| Left join | 会从左表中返回所有的值,即使右表中没有匹配 | 
| right join | 会从右表中返回所有的值,即使左表中没有匹配 | 
自己的表和自己的表连接,核心:一张表拆为两张一样的表即可
父类
| categoryid | categoryName | 
|---|---|
| 2 | 信息技术 | 
| 3 | 软件开发 | 
| 5 | 美术设计 | 
子类
| pid | categoryid | categoryName | 
|---|---|---|
| 3 | 4 | 数据库 | 
| 2 | 8 | 办公信息 | 
| 3 | 6 | web开发 | 
| 5 | 7 | ps技术 | 
操作:查询父类对应的子类关系
| 子类 | |
|---|---|
| 信息技术 | 办公信息 | 
| 软件开发 | 数据库 | 
| 软件开发 | web开发 | 
| 美术设计 | 
-- 查询父子信息:把一张表看为两个一模一样的表 SELECT `categoryName` AS '父栏目',b.`categoryName` AS `子栏目` FROM `category` AS a,`category` AS b WHERE a.`categoryid` = b.`pid`
-- 差询学员所属的年级 (学号,学生的姓名,年级名称) SELECT studentNo,studentName,gradeName FROM student s INNER JOIN `grade` g ON s.`gradeId` = g.`gradeId` -- 查询了参加 数据库结构-1 考试的同学信息:学号,学生姓名,科目名,分数 SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult` FROM student s INNER JOIN `result` r ON s.`studentno` = r.`studentno` INNER JOIN `subject` sub ON r.`subjectno` = sub.`subjectno` WHERE subjectname = '数据库结构-1 '
    我的一生
第1章-废物的一生 
第50章-糟糕的婴儿 
第300章-莫欺少年穷
 第600章-莫欺中年穷 
第1000章-莫欺老年穷
 第1100章-不详的离去
 第1101章-棺材板的震动 
第1150章-盗墓贼的眼泪 
第1200章-死者为大

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号