新手學習設計中.一個觀念卡了很久,
嘗試了SQL子查詢、SQL UNION、join但試不出來自己想要的結果
閉門造車一陣子..覺得真心需要大神們幫助幫我指引一下
假設我有兩個Table
Table1學生考試
Sno | Student | examDate | Memo|
------------- | -------------
00001 | Apple | 20210701 |國英數
00001 | Apple | 20210702 |國
00001 | Apple | 20210703 |英數
00002 | Banna| 20210701| 國
00002 | Banna| 20210702| 國英
00002 | Banna| 20210703| 英
00002 | Banna| 20210704| 數
00003 | Caca| 20210701| 數
Table2學生出勤統計
Sno |Student | examDate | 缺考
------------- | -------------
00001 | Apple | 20210701 |0
00001 | Apple | 20210702 |0
00001 | Apple | 20210703 |1
00002 | Banna| 20210701| 0
00002 | Banna| 20210702| 1
00002 | Banna| 20210703| 0
00002 | Banna| 20210704| 1
00003 | Caca| 20210701| 1
我該如何在Table1學生考試中
查出Table2學生出勤統計裡缺考=1的日期
期望能查出像下面這樣的結果
Sno | Student | examDate | Memo|
------------- | -------------
00001 | Apple | 20210703 |英數
00002 | Banna| 20210702| 國英
00002 | Banna| 20210704| 數
00003 | Caca| 20210701| 數
真的是頭痛希望能夠觀念更進一步
我該如何下條件才能呈現上面的結果呢?
Select Sno,examDate
from Table2學生出勤統計
where 缺考=1;
我用LEFT JOIN有查出你要的結果,你參考看看~
select 學生考試.Sno, 學生考試.Student, 學生考試.examDate, 學生考試.Memo
from 學生考試
left JOIN 學生出勤統計
on 學生考試.Sno = 學生出勤統計.Sno
and 學生考試.Student = 學生出勤統計.Student
and 學生考試.examDate = 學生出勤統計.examDate
where 學生出勤統計.缺考 = '1'
兩個條件符合就可以了~
select DISTINCT a.Sno
,a.Student
,a.examDate
,a.Memo
from Table1學生考試 a
left join Table2學生出勤統計 b
on a.Sno = b.Sno
where b.缺考 = 1
and a.examDate = b.examDate