資料表與自身進行連線
需求:從乙個包含欄目id , 欄目名稱和父欄目id的表中 查詢父欄目名稱和其他子欄目名稱
-- 編寫sql語句,將欄目的父子關係呈現出來 (父欄目名稱,子欄目名稱)
-- 核心思想:把一張表看成兩張一模一樣的表,然後將這兩張表連線查詢(自連線)
select a.categoryname as '父欄目',b.categoryname as '子欄目'
from category as a,category as b
where a.`categoryid`=b.`pid`
-- 思考題:查詢參加了考試的同學資訊(學號,學生姓名,科目名,分數)
select s.studentno,studentname,subjectname,studentresult
from student s
inner join result r
on r.studentno = s.studentno
inner join `subject` sub
on sub.subjectno = r.subjectno
-- 查詢學員及所屬的年級(學號,學生姓名,年級名)
select studentno as 學號,studentname as 學生姓名,gradename as 年級名稱
from student s
inner join grade g
on s.`gradeid` = g.`gradeid`
-- 查詢科目及所屬的年級(科目名稱,年級名稱)
select subjectname as 科目名稱,gradename as 年級名稱
from subject sub
inner join grade g
on sub.gradeid = g.gradeid
-- 查詢 資料庫結構-1 的所有考試結果(學號 學生姓名 科目名稱 成績)
select s.studentno,studentname,subjectname,studentresult
from student s
inner join result r
on r.studentno = s.studentno
inner join `subject` sub
on r.subjectno = sub.subjectno
where subjectname='資料庫結構-1'
聯表查詢 內連線 外連線
1.說明 聯表查詢可實現兩個或多個表之間的連線查詢,一般用於有主外來鍵關係表之間的連查詢,這裡拿兩個有主外來鍵關係的表來舉例說明聯表查詢的使用。student表 其中classid為外來鍵 class表 2.內連線查詢 查詢出學生的所有資訊 select from student a,class b...
聯表查詢 內連線 外連線
內連線 inner join 語句1 隱式的內連線,沒有inner join,形成的中間表為兩個表的笛卡爾積。select s.stuid,s.stuname,c.courseid,c.coursename from student as s,course as c where s.stuid c....
重新了解資料庫 聯表查詢和自連線
聯表查詢分為inner join left join right join left join左連線 以左表為主。結果會將左表所有的查詢資訊列出,而右表只列出on後條件與左表滿足的部分。right join左連線 以右表為主。結果會將右表所有的查詢資訊列出,而左表只列出on後條件與右表滿足的部分。查...