sql多表聯查

2021-09-26 06:49:32 字數 1320 閱讀 4063

sql的多表聯查有點忘了,搞個例子記錄一下,以後再忘來看看。

一、內連線

student表:

name

collegeid

張三11

李四college表:

collegeid

collegename

11清華

北大內連線:

select name,college.collegename from studentinner joincollegeonstudent.collegeid=college.collegeid;

結果是:

name

college

張三清華

二、外連線

1.左外連線:

select student.name,college.collegename from studentleft joincollegeonstudent.collegeid = college.collegeid; 

結果是:

name

college

張三清華

李四null

左外連線的意思就是以左表為準,把左表的所有name都查詢出來,而不管它的外來鍵collegeid有沒有值

2.右外連線

select student.name,college.collegename from studentright joincollegeonstudent.collegeid = college.collegeid; 

結果是:

name

college

張三清華

null

北大同左外連線的道理,右外連線意思就是以右表為準,把右表的所有college都查詢出來,而不管它的外來鍵collegeid有沒有值

另附自連線:

自連線和內連線原理很相似,只不過是把一張表當成兩張表來查詢,查詢某字段的相同記錄的集合。

student表:

name

collegeid

張三11

李四22

劉五11

sql:

select distinct a.name,a.collegeid from student a,student s where a.collegeid=s.collegeid and a.name <> s.name;

結果是name

collegeid

張三11

劉五11

SQL多表聯查總結

交叉連線 不常用 返回兩個表的笛卡爾乘積 也即全組合排列 中符合查詢條件的資料行。內連線返回連線表中符合連線條件和查詢條件的資料行。左外連線 返回符合連線條件和查詢條件 即 內連線 的資料行,且還返回左表中不符合連線條件但符合查詢條件的資料行。右外連線 返回符合連線條件和查詢條件 即 內連線 的資料...

簡單的多表聯查sql

mysql資料庫預設建立的test資料庫下實踐 建立兩張表 users 和 products use test create table test users user id intnot null auto increment,username varchar 30 primary key use...

SQL多表關聯查詢

關於 有時候,我們查詢資料時,會採用多資料庫關聯查詢的方式。資料庫通過連線兩張表或多張表查詢時,會生成一張臨時的中間表,然後返回給使用者的就是這張臨時表的資料。那麼具體怎麼操作呢?我們可以採用left join,搭配on where來實現。具體備註 1.on條件是在生成臨時表時使用的條件,它不管on...