阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 專技高考_資訊技師:資料結構與資料庫及資料探勘#104174
科目:資料結構與資料庫及資料探勘
年份:110年
排序:0

題組內容

四、根據以下模擬 1922 實名制簡訊關聯資料表架構,寫出不同查詢的 SQL 表示。
 Location (LID, LPID, Lname) // 位置編號,位置上層編號,位置名稱
 Message (MID, phoneNum, LID, Date) // 1922 簡訊
其中 LPID 為 LID 的更上層區域編號,若 LPID 為 0 則無上層區域,如: 某甲單位上層區域為臺北市,系統會有兩筆 Location 資料(10, 1, 甲) , (1, 0, 臺北市)。

申論題內容

(三)查詢電話號碼 09XX555666 在 2021/5/10 至 2021/5/17 有出現過的所有 上層區域。 (5 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
為了找出電話號碼 "09XX555666" 在指定日期範圍內訪問過的所有上層區域,我們需要從 Message 表獲取相應的 LID,然後與 Location 表進行聯接來查詢上層區域的名稱(Lname)。以下是實現這一查詢的 SQL 語句:

SELECT DISTINCT L.Lname
FROM Location L
JOIN Message M ON M.LID = L.LID
WHERE M.phoneNum = '09XX555666'
AND M.Date BETWEEN '2021-05-10' AND '2021-05-17'
AND L.LPID != 0;
SQL 查詢說明:
SELECT DISTINCT 子句用於選擇唯一的上層區域名稱 Lname,以確保不會有重複的區域名稱出現在結果中。
FROM 和 JOIN 子句設定了從 Location 表和 Message 表中抓取數據,並根據位置編號 LID 進行連接。
WHERE 條件用於過濾特定的紀錄:
M.phoneNum = '09XX555666' 指定電話號碼。
M.Date BETWEEN '2021-05-10' AND '2021-05-17' 指定日期範圍。
L.LPID != 0 確保只查詢那些有上層區域的位置(避免顯示根區域)。
這個查詢有效地檢索了在特定時間範圍內,由指定電話號碼訪問的所有位置的上層區域,並確保這些區域具有更高層次的父區域(非根區域)。