資料庫兩表鏈結

2022-08-29 02:00:09 字數 878 閱讀 7726

現在有兩個表,「學生表」記錄了學生的基本資訊,有「學號」、「姓名」。

「成績」表記錄了學生選修的課程,以及對應課程的成績。

這兩個表通過「學號」進行關聯。

現在要查詢出所有學生的學號,姓名,課程和成績。

【解題思路】

1.確定查詢結果

題目要求查詢所有學生的姓名,學號,課程和成績資訊

select 學號,姓名,課程,成績

查詢結果的列名「學號」、「姓名」,在「學生」表裡,列名「課程」、「成績」在「成績」表裡,所以需要進行多表查詢。

2.哪種聯結呢?

涉及到多表查詢,在之前的課程《從零學會sql:多表查詢》裡講過需要用到聯結。

多表的聯結又分為以下幾種型別:

1)左聯結(left join),聯結結果保留左表的全部資料

2)右聯結(right join),聯結結果保留右表的全部資料

3)內聯結(inner join),取兩表的公共資料

這個題目裡要求「所有學生」,而「所有學生」在「學生」表裡。為什麼不在「成績」表裡呢?

如果有的學生沒有選修課程,那麼他就不會出現在「成績」表裡,所以「成績」表沒有包含「所有學生」。

所以要以「學生」表進行左聯結,保留左邊表(學生表)裡的全部資料。

from 學生資訊表 as a left join 成績表 as b

3.兩個表聯結條件是什麼?

兩個表都有「學號」,所以聯結條件為學號。

on a.學號=b.學號

答案:select firstname,lastname, city, state

from person left join address

on address.personid=person.personid

資料庫多表鏈結

unity學習筆記 多表聯合查詢 定義 聯合查詢 連線查詢 的表中需要有資料型別和長度都相同的屬性,稱為 連線屬性 實現查詢的時候需要兩個資料表的連線屬性相同。比如兩個表 學生 學號,姓名,年齡 和學習 學號,課程號,成績 實現連線查詢的語句為 select 學生.學號,姓名,年齡,課程號,成績 f...

資料庫鏈結

1 oracle8 8i 9i資料庫 thin模式 class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin localhost 1521 orcl orcl為資料庫的sid strin...

hibernate鏈結兩個資料庫查詢

hibernate可鏈結兩個不同的資料庫,可以都是mysql或者乙個mysql乙個sql seiver等 具體如下 一 在src下 寫兩個hibernate.cfg.xml檔案 如 hbn mysql.cfg.xml和hbn sqlserver.cfg.xml 二 分別解析上面的兩個.cfg.xml...