/***********==== 子查詢 ***************=
什麼是子查詢?
在查詢語句中的where條件子句中,又巢狀了另乙個查詢語句
巢狀查詢可由多個子查詢組成,求解的方式是由裡及外;
子查詢返回的結果一般都是集合,故而建議使用in關鍵字; */
-- 查詢 資料庫結構-1 的所有考試結果(學號,科目編號,成績),並且成績降序排列
-- 方法一:使用連線查詢
select studentno,r.subjectno,studentresult
from result r
inner
join
`subject` sub
on r.
`subjectno`
=sub.
`subjectno`
where subjectname =
'資料庫結構-1'
order
by studentresult desc
;-- 方法二:使用子查詢(執行順序:由里及外)
select studentno,subjectno,studentresult
from result where
subjectno=
(select subjectno from
`subject`
where subjectname =
'資料庫結構-1'
)order
by studentresult desc
;-- 查詢課程為 高等數學-2 且分數不小於80分的學生的學號和姓名
-- 方法一:使用連線查詢
select s.studentno,studentname
from student s
inner
join result r
on s.
`studentno`
= r.
`studentno`
inner
join
`subject` sub
on sub.
`subjectno`
= r.
`subjectno`
where subjectname =
'高等數學-2'
and studentresult>=
80-- 方法二:使用連線查詢+子查詢
-- 分數不小於80分的學生的學號和姓名
select r.studentno,studentname
from student s
inner
join result r
on s.
`studentno`
=r.`studentno`
where studentresult>=
80-- 在上面sql基礎上,新增需求:課程為 高等數學-2
select r.studentno,studentname from student s
inner
join result r on s.
`studentno`
=r.`studentno`
where studentresult>=
80and subjectno=
(select subjectno from
`subject`
where subjectname =
'高等數學-2'
)-- 方法三:使用子查詢
-- 分步寫簡單sql語句,然後將其巢狀起來
select studentno,studentname from student where studentno in
(select studentno from result where studentresult>=
80and subjectno=
(select subjectno from
`subject`
where subjectname =
'高等數學-2'
))
(1)俄羅斯套娃 最大上公升子串行
lis longest increasing subsequence 最長上公升 不下降 子串行,有兩種演算法複雜度為o n logn 和o n 2 在上述演算法中,若使用樸素的順序查詢在d1.dlen查詢,由於共有o n 個元素需要計算,每次計算時的複雜度是o n 則整個演算法的時間複雜度為o n...
mysql from 子查詢 mysql 子查詢
簡單的解釋下幾個資料庫概念以幫助理解子查詢的內容 1 什麼是建標 答 就是宣告列的過程。2 什麼是列答 列可以理解為變數,可以運算3 什麼是取出結果 答 可以理解為零時表 接下來建立2個表,email表和person表,例子的原型是乙個人可以有多個郵箱,而乙個郵箱只能屬於乙個人,一對多的資料關係,其...
SELECT 查詢 子查詢
1 非相關子查詢 非相關子查詢,也稱巢狀子查詢,可以多層巢狀。這種子查詢的執行不依賴於外查詢。執行過程是,先執行子查詢,子查詢的結果並不顯示出來,而是作為外查詢的條件值,然後執行外查詢。非相關子查詢的特點 子查詢只執行一次,其查詢結果不依賴於外查詢。而外查詢的查詢條件依賴於子查詢的結果,因此,也可以...