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...