直播中
為了了解實際的連接操作,現(xiàn)在讓我們假設在一個數(shù)據(jù)庫內(nèi)存放了某類軟件的相關記錄。某個表(Software)包含了軟件產(chǎn)品的名稱、軟件的版本以及其他有關細節(jié):[image004.gif]
另一個表(Releases)則存儲了軟件發(fā)布歷史的信息,其中包括發(fā)布日期和發(fā)布狀態(tài)等(比如測試版、當前版、過時等):[image005.gif]
上表中還包含了一個列,內(nèi)容指向軟件表中采用的ID號。所以,通過這種索引軟件表的方式,你就知道發(fā)布表中software_ID 等于 2的軟件是Rome。
你采用連接組合信息,這樣就不需要在兩個表之間來回折騰了。不過,除了組合信息之外還可以通過連接把有關信息合并。這樣,只要發(fā)布表內(nèi)的software_ID 匹配軟件表內(nèi)的ID,你就把匹配信息一起放到一個記錄內(nèi)。
代碼如下:
SQL = "SELECT * FROM Software, Releases WHERE software.ID = releases.softwareID"
仔細分析以上的語句,首先注意到兩個表名列在了FROM的后面。再根據(jù)所采用的連接,今后你可能還會發(fā)現(xiàn)語法會有所變化(或者連接類型有變),但是以上的語法是最基本的,顯示了數(shù)據(jù)的聯(lián)合選擇方式。這里的WHERE 子句用來比較特定的ID值。在Software 表內(nèi),存在ID 列。同樣的,Releases 表內(nèi)則有個software_ID 列。為了明確你在WHERE 子句里要比較的值,你用表名作為前綴,后面還加上了一個點號(.)。
以下是連接選取數(shù)據(jù)之后的結果:[image006.gif]
注意:在創(chuàng)建連接的時候要仔細考慮選出數(shù)據(jù)的列。以上代碼采用 * 通配符是為了讓讀者關注于SELECT 代碼行的其他部分。但是,正如你從上圖看到的那樣,你無法選出softwareID 列,因為這一列沒有作為recordset部分的增加值。它的作用就是為WHERE 子句所用。