一個SQL Server多對多查詢的面試題
作者:七月逆流
本文我們主要介紹了一個SQL Server多對多查詢的面試題以及它的解決方案,希望能夠?qū)δ兴鶐椭?/div>
SQL Server數(shù)據(jù)庫應(yīng)用中,我們經(jīng)常會用到多對多查詢,本文我們就給出了一個簡單的多對多查詢的實例,接下來就讓我們一起來了解一下這部分內(nèi)容。
題目是這樣的:
- ---學(xué)生表
- 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
- );
問題:找出名字為張三的學(xué)號,姓名 對應(yīng)學(xué)的課程的編號和課程名稱,一個sql完成。請問這個查詢語句,應(yīng)該怎么寫?
解決方法:
- --多表查詢
- 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 = '梁帥偉';
- --就算他沒有參加任何課程,也將他的姓名,學(xué)號查詢出來 (left join 以 此關(guān)鍵字前的表為準(zhǔn))
- SELECT S.STU_NO 學(xué)號, 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 = '梁文興';
關(guān)于SQL Server數(shù)據(jù)庫多對多查詢的實例就介紹到這里的,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
責(zé)任編輯:趙鵬
來源:
博客園


相關(guān)推薦
2009-06-06 18:34:05
2025-03-12 08:00:00
2009-07-21 17:39:50




