9.聯表查詢JoinON詳解


JoinON

查詢參加考試的同學(學號,科目名稱分數),這些參數是在2個table中,需要用join連接  需要有一個關聯的參數

1.INNER JOIN 並集

SELECT `sid`,`sname`,`cname`
FROM `student` AS a
INNER JOIN `course` AS c

on s.sid=c.sid

 

 

 2.RIGHT JOIN

 

 

3. LEFT JOIN 

SELECT `sname`,`cname`
FROM `student` AS a
LEFT JOIN `course` AS c
ON a.sid=c.sid

 

 

操作 描述
INNER JOIN 如果表中至少一個匹配,就返回行
LEFT JOIN  會從左表中返回所有的值,即使右表中沒有匹配
RIGHT JOIN  會從右表中返回所有的值,即使左表中沒有匹配

join(連接的表) on 連接查詢  on代表查詢的條件

where 等值查詢

from a left join b 以a表為基准

SELECT `score`,`tid`,`tname`
FROM `sc` s
RIGHT JOIN `course` c
ON s.sid=c.sid
INNER JOIN `teacher` t
ON c.`cname`=t.`cname`

 自連接及連表查詢

自連接:自己的表跟自己的表連接  一張表拆分成2張一樣的表

 

CREATE TABLE `category`(
`categoryid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主題id',
`pid` VARCHAR(30) NOT NULL COMMENT '父id',
`categoryName`VARCHAR(50) NOT NULL COMMENT '主題名稱',
PRIMARY KEY (`categoryid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;

 

INSERT INTO `category`(`categoryid`,`pID`,`categoryName`)
VALUES('2','1','信息技術'),('3','1','軟件開發'),('4','3','數據庫'),('5','1','美術設計'),('6','3','web開發'),('7','5','ps技術'),('8','2','辦公信息')

 

 

 

父類:

 

categoryName categoryid
信息技術 2
軟件開發 3
美術設計 5
   

子類:

 

pid categoryid  categoryName
3 4 數據庫
3 6 web開發
5 7 ps技術
2 8 辦公信息

                                                          

子類的父id=父類的categoryid

操作:查詢父類對應子類的關系

父類 子類
信息技術 辦公信息
軟件開發 數據庫
軟件開發 web開發
美術設計 ps技術

 

--查詢父/子類信息

SELECT a.`categoryName` AS '父欄目',b.`categoryName` AS '子欄目'
FROM `category` AS a,`category`AS b
WHERE a.`categoryid`=b.`pid`

 

 查詢學員的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM