一個SQL Server多對多查詢的面試題
作者:七月逆流
本文我們主要介紹了一個SQL Server多對多查詢的面試題以及它的解決方案,希望能夠對您有所幫助。
SQL Server數據庫應用中,我們經常會用到多對多查詢,本文我們就給出了一個簡單的多對多查詢的實例,接下來就讓我們一起來了解一下這部分內容。
題目是這樣的:
- ---學生表
- CREATE TABLE student (
- ID INTEGER,
- stu_No INTEGER,
- NAME VARCHAR2(32)
- );
- --課程表
- CREATE TABLE course (
- ID INTEGER,
- cou_no INTEGER,
- NAME VARCHAR2(32)
- );
- --中間表
- CREATE TABLE s_c (
- stu_id INTEGER,
- cour_id INTEGER
- );
問題:找出名字為張三的學號,姓名 對應學的課程的編號和課程名稱,一個sql完成。請問這個查詢語句,應該怎么寫?
解決方法:
- --多表查詢
- SELECT STU.STU_NO, STU.NAME --, COU.COU_NO, COU.NAME
- FROM S_C SC
- LEFT JOIN STUDENT STU
- ON STU.ID = SC.STU_ID
- LEFT JOIN COURSE COU
- ON COU.ID = SC.COUR_ID
- WHERE STU.NAME = '梁帥偉';
- --就算他沒有參加任何課程,也將他的姓名,學號查詢出來 (left join 以 此關鍵字前的表為準)
- SELECT S.STU_NO 學號, S.NAME 姓名, C.COU_NO 課程編號, C.NAME 課程名稱
- FROM STUDENT S
- LEFT JOIN S_C SC
- ON S.ID = SC.STU_ID
- LEFT JOIN COURSE C
- ON C.ID = SC.COUR_ID
- WHERE S.NAME = '梁文興';
關于SQL Server數據庫多對多查詢的實例就介紹到這里的,希望本次的介紹能夠對您有所收獲!
【編輯推薦】
責任編輯:趙鵬
來源:
博客園