透過 SQL 內連接有效組合多個資料表中的資料:子查詢方法
本文解決了一個常見的 SQL 挑戰:根據匹配的列值從多個表中檢索資料。 具體場景包括從 tbl_facilitators
和 tbl_facilitatorClasses
中提取數據,旨在以結構化格式顯示班級名稱以及主要和次要輔導員的名字和姓氏。
最初證明簡單的內部連結不足以同時檢索主要和次要促進者詳細資訊。
利用子查詢最佳化聯結操作
由@philipxy 提出的解決方案,優雅地採用子查詢來簡化連接過程。讓我們逐步檢查一下精煉查詢:
別名 tbl_facilitatorClasses
<code class="language-sql">(tbl_facilitatorClasses AS tblCLS</code>
為了簡潔和清晰,這會將別名 tblCLS
分配給 tbl_facilitatorClasses
。
與tblCLS
(主要協調者)一起加入tbl_facilitators
<code class="language-sql">INNER JOIN tbl_facilitators AS tblP ON tblCLS.primeFacil = tblP.facilID)</code>
此子查詢使用 tblCLS
作為匹配鍵連接 tbl_facilitators
和 tblP
(別名 primeFacil
),產生包含類別名稱和主要促進者資訊的中間結果集。
使用 tbl_facilitators
(輔助協調員)連接子查詢
<code class="language-sql">INNER JOIN tbl_facilitators AS tblS ON tblCLS.secondFacil = tblS.facilID;</code>
最終的內連接將前面的子查詢的輸出與 tbl_facilitators
(別名為 tblS
)合併,並使用 secondFacil
進行配對。 這會產生完整的資料集,包括主要和次要促進者資料以及班級名稱。
使用 SELECT
語句選擇資料
然後使用 SELECT
語句來擷取所需的欄位:
<code class="language-sql">SELECT tblCLS.className, tblP.facilLname, tblP.facilFname, tblS.facilLname, tblS.facilFname</code>
透過在子查詢周圍使用括號,MS Access 可以正確排序操作,確保以預期順序執行連接。這種方法有效地檢索所需的數據,產生所需的輸出。
以上是子查詢如何改進 SQL 內部聯結以組合多個表中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!