首頁>Club>
表1中有學生編號,上課最多次數,上最多的一門課。表2中有課程編號,這門課屬於的專業編號,這個專業屬於的學院學院編號。表3裡面有學生編號,學生以前最喜歡課程。怎麼編寫sql查詢學生編號stu_id,上課最多次數num,上的最多的一門課class_id,這門課是否是以前最喜歡的課0 or 1,如果不是以前最喜歡的課那是否屬於同一個專業0 or 1,如果不屬於同一個專業是否屬於同一個學院0 or 1
3
回覆列表
  • 1 # Joey83441417

    不同資料庫,SQL語法會有些差異,我以Oracle資料庫為例,表結構如下圖:

    查詢SQL參考如下:

    SELECT A.STU_ID "學生ID",

    A.MAX_CLASS_CNT "最大上課次數",

    A.MAX_CLASS_ID "次數最多課程",

    DECODE(B.CLASS_ID,C.CLASS_ID,1,0) "是否最喜歡課程",

    CASE WHEN B.CLASS_ID<>D.CLASS_ID THEN DECODE(B.ZHUANYE_ID,D.ZHUANYE_ID,1,0) END "是否同一專業",

    CASE WHEN B.CLASS_ID<>D.CLASS_ID AND B.ZHUANGYE_ID<>D.ZHUANGYE_ID THEN DECODE(B.XUEYUAN_ID,D.XUEYUAN_ID,1,0) END "是否同一學院"

    FROM STU_LES_LOG A

    LEFT JOIN CLASS_INFO B

    ON A.MAX_CLASS_ID=B.CLASS_ID

    LEFT JOIN STU_INFO C

    ON A.STU_ID=B.STU_ID

    LEFT JOIN CLASS_INFO D

    ON C.FAV_CLASS_ID=D.CLASS_ID

  • 2 # 逗逼老碼農

    沒有環境,而且不知道你是什麼資料庫。不能敲程式碼。只能給你說大致思路。

    首先表1和表2透過學生id關聯,取出學生上課最多的課以及課所屬專業,院系(暫時稱為資料集a)。然後表3和表2透過學生id關聯,取出學生最喜歡的課以及所屬專業,院系(稱為資料集b),最後a和b透過學生id關聯,判斷專業是否相同,院系是否相同。得出最終需要的結果集。

  • 中秋節和大豐收的關聯?
  • 面對慘遭如此傷害的穿山甲,我們應該如何保護?