用left join實現表迴圈關聯

2021-10-05 13:34:53 字數 480 閱讀 2029

問題:三個表 a(學生),b(課程),c(成績) ,要求分頁查詢學生的所有課程成績(包括沒有成績的課程)?

難點:一般是a left join c 再left join b ,但是學生沒有成績的課程無法關聯出來 ,

解決方法:

1、首先需要查詢出所有的學生、課程列表;

我們可以通過給表a、表b分別加欄位比如:t_id ,而且值都等於1 。這樣表a、表b就可以left join關聯了。

select

t1.*,t2.*

from

(select *,1 as t_id from a)t1

left join (select *,1 as t_id from b)t2 on t1.t_id=t2.t_id;

2、接下來就簡單了,上面的結果再直接關聯c表即可

left join c on t2.課程id=c.課程id   

這樣沒成績或者沒有記錄成績的課程也可以統計出來了。

用的迴圈鍊錶

description n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的編號。input 輸入n和m值。output 輸出勝利者的編號。sample input 5 ...

用雙向迴圈鍊錶實現凱撒(Caesar)密碼

凱撒密碼簡介 它是一種代換密碼。據說凱撒是率先使用加密函的古代將領之一,因此這種加密方法被稱為凱撒密碼。凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是 通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後 或向前 按照乙個固定數目進行偏移後被...

用指標實現表

include stdafx.h include iostream.h templateclass list template class node template class list list bool empty const int size const bool retrieve int ...