hce_kmu
109年
計算機概論與程式設計
第 17 題
Refer to Tables 1 and 2 below, please choose the CORRECT outputs (A) and (B) resulted from the execution of the following SQL statements:
```sql
SELECT students.Name, math.Score
FROM students
INNER JOIN math
ON students.S_ID = math.S_ID
```
Output
| Name | Score |
|---|---|
| (A) | (B) |
| Jerry | 95 |
Table 1. students
| S_ID | Name | Phone Number | Gender | Birth |
|---|---|---|---|---|
| 1010001 | Jerry | 7895846 | Male | 1999/08/23 |
| 1010002 | Mary | 9584628 | Female | 1999/03/16 |
| 1010003 | Sam | 6038498 | Male | 1998/07/01 |
Table 2. math
| No. | Score | S_ID |
|---|---|---|
| 1 | 80 | 1010003 |
| 2 | 55 | 1010011 |
| 3 | 60 | 1010005 |
| 4 | 95 | 1010001 |
| 5 | 73 | 1010006 |
```sql
SELECT students.Name, math.Score
FROM students
INNER JOIN math
ON students.S_ID = math.S_ID
```
Output
| Name | Score |
|---|---|
| (A) | (B) |
| Jerry | 95 |
Table 1. students
| S_ID | Name | Phone Number | Gender | Birth |
|---|---|---|---|---|
| 1010001 | Jerry | 7895846 | Male | 1999/08/23 |
| 1010002 | Mary | 9584628 | Female | 1999/03/16 |
| 1010003 | Sam | 6038498 | Male | 1998/07/01 |
Table 2. math
| No. | Score | S_ID |
|---|---|---|
| 1 | 80 | 1010003 |
| 2 | 55 | 1010011 |
| 3 | 60 | 1010005 |
| 4 | 95 | 1010001 |
| 5 | 73 | 1010006 |
- A Name = Sam, Score = 80
- B Name = Jerry, Score = 55
- C Name = Mary, Score = 60
- D Name = Sam, Score = 73
- E Name = Mary, Score = 73
思路引導 VIP
想像一下,如果你是資料庫管理員,現在要幫這兩張散亂的表「相親」。根據 SQL 指令中的 ON 條件,兩張表必須靠哪一個欄位才能順利牽手?請試著從 math 表中每一行分數的出發,去 students 表中找找看,哪一位學生的學號(S_ID)能與它完美契合呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你非常準確地掌握了 SQL 關聯查詢的核心邏輯。這道題目測試的是資料庫中最重要的觀念之一:內連接(INNER JOIN)。當我們執行 INNER JOIN 並設定 ON students.S_ID = math.S_ID 時,資料庫會像玩連連看一樣,只有當兩張表格的 S_ID(學號)完全一致時,該筆資料才會被提取出來。
關聯邏輯的驗證
我們觀察 math 資料表,雖然它有 5 筆成績,但並非每位學生的資訊都在 students 表中。對照後可以發現,學號 1010001 對應到 Jerry,成績為 95 分(已出現在範例輸出);而學號 1010003 則成功對應到 Sam,其對應分數為 80 分。其餘學號如 1010011、1010005 等,在學生基本資料表中找不到匹配項,因此在「內連接」的結果中會被排除。
▼ 還有更多解析內容