1. 程式人生 > >多表連線查詢、子查詢

多表連線查詢、子查詢

多表連線查詢

當我們在資料庫的查詢中,可能我們需要的兩個或多個欄位並不存在與一張表中,我們可以通過多表連線查詢的方式進行查詢(雖然我們可以寫不同的幾個語句分開進行查詢,但是這樣會極大的增加我們的程式碼量並且效率較低)。當我們要查詢不同表內的資料時,我們需要將兩個表通過一個欄位來進行連線(一般為主外來鍵,也可以是其他相同的欄位)。其格式為 select 欄位1,欄位2,欄位3 from 表一,表二 where 表一.欄位4 = 表二.欄位4;

注意:1)在實際的使用過程中,可能需要連線的兩個表並沒有直接的連線條件,這時可能會需要第三個表進行中間量進行連線。

          2)若不寫連線條件時,並不會報錯,但是會出現笛卡爾積錯誤,會出現多個相同內容的資料。

          3)自連線:當同一個表中兩個欄位可以滿足連線條件時,可將表分別起兩個別名,進行自連線。

          4)左外聯:用於兩個表中欄位不完全匹配(有一邊有空欄位)時使用,將空欄位進行匹配,在確實資料的表後加“(+)”,

               右外聯相同。

子查詢

子查詢是將一條單獨的查詢語句作為查詢條件,資料來源等作為使用,但是在作為查詢條件時,要注意子句中的查詢出的結果是否為一條,若不是需要將=換位in