MySQL之關聯查詢

2021-08-10 08:50:41 字數 2024 閱讀 8193

mysql聯合查詢效率較高,以下例子來說明聯合查詢(內聯、左聯、右聯、全聯)的好處:

t1表結構(使用者名稱,密碼)   

userid(int)   username varchar(20)   password varchar(20)   

1  

jack  

jackpwd   

2  

owen  

owenpwd   

t2表結構(使用者名稱,密碼)   

userid(int)   jifen varchar(20)   dengji varchar(20)   

1  

20  

3   

3  

50  

6   

第一:內聯(inner join)

如果想把使用者資訊、積分、等級都列出來,那麼一般會這樣寫:

select * from t1, t3 where t1.userid = t3.userid

(其實這樣的結果等同於select * from t1 inner join t3 on t1.userid=t3.userid )。

把兩個表中都存在userid的行拼成一行(即內聯),但後者的效率會比前者高很多,建議用後者(內聯)的寫法。

sql語句:

select * from t1 inner join t2 on t1.userid = t2.userid

執行結果   

t1.userid   username   password   t2.userid   jifen   dengji   

1   jack   jackpwd   1   20   3   

第二:左聯(left outer join)

顯示左表t1中的所有行,並把右表t2中符合條件加到左表t1中;

右表t2中不符合條件,就不用加入結果表中,並且null表示。

sql語句:

select * from t1 left outer join t2 on t1.userid = t2.userid

執行結果   

t1.userid   username   password   t2.userid   jifen   dengji   

1   jack   jackpwd   1   20   3   

2   owen   owenpwd   null   null   null   

第三:右聯(right outer join)。

顯示右表t2中的所有行,並把左表t1中符合條件加到右表t2中;

左表t1中不符合條件,就不用加入結果表中,並且null表示。

sql語句:

select * from t1 right outer join t2 on t1.userid = t2.userid

執行結果   

t1.userid   username   password   t2.userid   jifen   dengji   

1   jack   jackpwd   1   20   3   

null   null   null   3   50   6   

第四:全聯(full outer join)

顯示左表t1、右表t2兩邊中的所有行,即把左聯結果表 + 右聯結果表組合在一起,然後過濾掉重複的。

sql語句:

select * from t1 full outer join t2 on t1.userid = t2.userid

執行結果   

t1.userid   username   password   t2.userid   jifen   dengji   

1   jack   jackpwd   1   20   3   

2   owen   owenpwd   null   null   null   

null   null   null   3   50   6   

總結,關於聯合查詢,效率的確比較高,4種聯合方式如果可以靈活使用,基本上覆雜的語句結構也會簡單起來。

mysql關聯查詢去重 MySQL 關聯查詢

mysql 關聯查詢 sql資料分析 1週前 mysql 關聯查詢 前面,我們介紹的都是單錶查詢 就是只從一張表中獲取資料 而實際應用的時候,我們都會同時查詢多張表,這裡,我們就介紹下,多表關聯查詢的使用。sql join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料 前置知識 主鍵 p...

mysql關聯查詢

在程式開發時,不可避免的要用到檢視,首先我們來看看檢視到底有什麼作用 簡單性 看到的就是需要的。檢視不僅可以簡化使用者對資料的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為檢視,從而使得使用者不必為以後的操作每次制定全部的條件。安全性 通過檢視用固話只能查詢和修改他們所能見到的資料。資...

Mysql關聯查詢

七種結果 7 a b a b 或者 a a b b a b 如何實現?1 內連線 2 外連線 左外連線 右外連線 全外連線 mysql使用union代替全外連線 1.內連線 實現a b select 字段列表 from a表 inner join b表 on 關聯條件 where 等其他子句 或se...