數(shù)據(jù)庫(kù)中的表連接包括三種:內(nèi)連接、外連接、交叉連接
t1(表):
| id | name |
|---|---|
| 1 | tome |
| 2 | jey |
| 5 | mark |
| 6 | merry |
t2(表):
| ides | namees |
|---|---|
| 2 | qwer |
| 3 | asdf |
| 5 | zxcv |
| 6 | kenan |
內(nèi)連接(inner join)
查詢兩個(gè)表中相同的記錄:
select id,namees from t1 INNER JOIN t2 on t1.id = t2.ides
結(jié)果:
| id | namees |
|---|---|
| 2 | qwer |
| 5 | zxcv |
| 6 | kenam |
外連接
外連接又分左連接(左向外連接)、右連接(右向外連接)、完全外連接
左連接和左向外連接是一個(gè)東西,名字不同罷了。 右同
左連接left join(左向外連接left outer join)
左連接是將左表的數(shù)據(jù)全部查出,然后與右表進(jìn)行匹配on關(guān)鍵字后面的內(nèi)容,如果沒(méi)有相關(guān)聯(lián)的數(shù)據(jù)則為NULL
select id,namees from t1 LEFT OUTER JOIN t2 on t1.id = t2.ides
結(jié)果
| id | namees |
|---|---|
| 2 | qwer |
| 5 | zxcv |
| 6 | kenam |
| 1 | NULL |
右連接right join(右向外連接right outer join)
右連接是將右表數(shù)據(jù)全部查出,然后與左表進(jìn)行匹配on關(guān)鍵字后面的內(nèi)容,如果沒(méi)有相關(guān)聯(lián)的數(shù)據(jù)則為NULL
select id,namees from t1 RIGHT JOIN t2 on t1.id = t2.ides
結(jié)果
| id | namees |
|---|---|
| 2 | qwer |
| NULL | asdf |
| 5 | zxcv |
| 6 | kenam |
完全外連接
select id,namees from t1 FULL JOIN t2 on t1.id = t2.ides
結(jié)果
| id | namees |
|---|---|
| 1 | NULL |
| 2 | qwer |
| 5 | zxcv |
| 6 | kenam |
| NULL | asdf |
不過(guò)Mysql里沒(méi)有完全外連接
交叉連接
交叉連接即笛卡爾積連接,是兩張表的數(shù)據(jù)的集合??倲?shù)是n*n。