DQL-查詢筆記-2022-11-30
阿新 • • 發佈:2022-11-30
聯表查詢
join 連線的表 on(判斷的條件) 連線查詢 固定的語法
where 等值查詢
分析需求 分析查詢的資料來源於那些表
確定使用那種連線 7種
確認交叉點(這兩張表中哪個資料是相同的)
判斷條件 學生表中的 studentNo = 成績表中的 studentNo
-- 聯表查詢
SELECT s.`studentno`,studentname,`subjectno`,`studentresult`
FROM student AS s
INNER JOIN result AS r
on s.studentno = r.studentno
操作 | 描述 |
inner join | 如果表中至少有一個匹配,就返回行 |
right join | 會從右表中返回值,即使左表中沒有匹配 |
left join | 會從左表中返回值,即使右表中沒有匹配 |
--查詢缺考的同學
SELECT s.`studentno`,studentname,`subjectno`,`studentresult`
FROM student AS s
LEFT JOIN result AS r
ON s.studentno = r.studentno
WHERE studentresult IS NULL
--三張表聯表
-- 三張表關聯
-- 學號,姓名,科目編號,科目名,分數
SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM student s
RIGHT JOIN result r
ON s.studentno = r.studentno
INNER JOIN `subject` sub
ON r.`subjectno`= sub.`subjectno`
-- 我要查詢哪些資料 select
-- 從那些表中查 from 表 XXX join 連線的表 on 交叉條件
-- 假設存在多張表的查詢,慢慢來,先連兩張表