最近在家上資料庫原理的網課,查詢這一塊感覺不是很懂,請大佬解答一下我困惑的第三種情況吧(順帶看一下前兩種沒錯吧)
非常感謝


uj5u.com熱心網友回復:
試試:select distinct s.學號,姓名,性別 from student_info s
left join grade g on s.學號=g.學號 and g.課程編號 in ('0002','0005')
uj5u.com熱心網友回復:
樓上正解,SQL一定要會用joinuj5u.com熱心網友回復:

這是查出的結果,我的資料庫中只有學號0006和0007是只學了課程0002和0005的,
這個左連接將符合連接條件和學生資訊表中其他的都顯示出來了,
好像并不符合要求,應該是有點問題吧

uj5u.com熱心網友回復:
select distinct s.學號,姓名,性別 from student_info sleft join grade g on s.學號=g.學號
where g.課程編號 in ('0002','0005')
寫where條件 這樣會過濾掉不符合條件的學員
如果在left join 后面的on 寫限制條件,不符合的會顯示null,這里select 只有s.學號,姓名,性別 ,如果加上課程編號 應該是空的
uj5u.com熱心網友回復:

這個跟我上面查詢的第一種情況是一樣的,0002與0005號課程只要學了其一就會被查出來。
uj5u.com熱心網友回復:
select *
from
(select 學號,課程編號1 from grade
where 課程編號 = '0002') as a
inner join
(select 學號,課程編號2 from grade
where 課程編號 = '0005') as b
on a.學號 = b.學號
這個意思?
uj5u.com熱心網友回復:
select *from
(select 學號,課程編號 from grade
where 課程編號 = '0002') as a
inner join
(select 學號,課程編號 from grade
where 課程編號 = '0005') as b
on a.學號 = b.學號
uj5u.com熱心網友回復:
select *
from
(select 學號,課程編號 from grade
where 課程編號 = '0002') as a
inner join
(select 學號,課程編號 from grade
where 課程編號 = '0005') as b
on a.學號 = b.學號

好像也不是這個意思。。。其實就是有的人學了0002或0005中的一種和其他的課程;有的人學了0002和0005還學了其他的課;然后有的人只學了0005和0002課程;我想查出最后面哪一種。。我也不知道我有沒有說清
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/46280.html
標籤:基礎類
上一篇:救救孩子吧,快寫瘋了
