阿摩線上測驗 登入

申論題資訊

試卷: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 共同出現在同樣上層區域 的所有電話號碼。(5 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
SELECT DISTINCT M2.phoneNum
FROM Message M1
JOIN Location L1 ON M1.LID = L1.LID
JOIN Message M2 ON M2.Date = M1.Date AND M2.MID != M1.MID
JOIN Location L2 ON M2.LID = L2.LID AND L1.LPID = L2.LPID
WHERE M1.phoneNum = '09XX555666'
AND M1.Date = '2021-05-10'
AND L1.LPID != 0;
SQL 查詢說明:
SELECT DISTINCT 子句用於選擇唯一的電話號碼,確保結果中不會有重複。
FROM 和 JOIN 子句建立了數據來源和必要的連接:
Message M1 和 Location L1 連接用於確定目標電話號碼在特定日期出現的位置和對應的上層區域。
Message M2 和 Location L2 連接用於查找所有其他在同一天出現在相同上層區域的電話號碼。
ON 條件確定了連接的基準:
M1.LID = L1.LID 和 M2.LID = L2.LID 用於連接消息與位置。
L1.LPID = L2.LPID 確保只比較相同上層區域的位置。
WHERE 條件用於篩選特定的記錄:
M1.phoneNum = '09XX555666' 指定目標電話號碼。
M1.Date = '2021-05-10' 指定特定日期。
L1.LPID != 0 確保所考慮的位置具有上層區域。
這個查詢有效地篩選出了與指定電話號碼在同一天共處同一上層區域的所有其他電話號碼,有助於識別可能的相關或群體行為模式。