Sql 資料庫 join 連線

2021-06-10 18:19:43 字數 1285 閱讀 4482

sql裡面有兩個連線乙個是union,另乙個就是join 

他們兩個的區別:

union 連線的是行 是一行一行的連  而 join 連線的是列(字段)    (他們倆的區別暫時就就知道這點)

join連線的使用的前提:

1.必須要有至少乙個表(乙個表可以用自連線)

2.必須要有相關聯的列(字段),主鍵外來鍵啥的。

join 分為 內連線(inner join)、外連線(left outer join 和 right outer join)、交叉連線(cross join)和自連線。

首先, 內連線 inner join  這個用的比較多 

作用就是 當要查詢的多個列在不同的表中時,為了進行跨表查詢而使用的

用法:select sname,sage,cname from student  inner join class on class.classid=student.sclassid;

這個查詢裡面sname和 sage是student表裡的,cname是class表裡的  這裡面是根據class裡的classid(主鍵)和student表裡的sclassid關聯的

如果要是有等多個表,嫌總是寫表名麻煩可以給各個表設個名,如下

select sname,sage,cname from student as s1  inner join class as c1 on c1.classid=s1.sclassid;

然後,外連線 left outer join 和 right outer join  這個用的也比較多 主要是用在找乙個表在另乙個表中沒有的資料

left outer join 就是左表記錄都顯示出來對右錶能找到資料的對應匹配資料,對右表找不到的匹配記錄為null

right outer join 同做很相似 就不多說了,你懂得。。

用法:select sname,sage,english from student  left outer join score on score.studentid=student.sid where sid  not in studentid

這個查詢就是查詢沒有考試的學生。。

交叉連線 cross join

這個吧,,應該用的不多 我也不會用呃 他得到資料就連線的兩個表資料的積

自連線

這個用的也不多,所以直接寫下用法就不介紹了

用法:select * from student inner join (select sname,sage,sid from student where sage>10) as ts1 onstudent.sid=ts1.sid

資料庫 資料庫表連線Join

一條sql join語句對應著關係代數裡的乙個join操作,它對關聯式資料庫裡乙個或多個表的列進行合併。ansi標準的sql規定了5種型別的join inner,left outer,right outer,full outer和cross。除此之外乙個表能夠對自身進行連線,即self join。以...

資料庫查詢連線 JOIN 用法

工作中寫sql語句時需要用到在多個表之間各查詢點資料,然後組合,利用mybatis返回給乙個bean物件。現在把這幾個連線總結下,方便下次用時參考。下面是學生表student idname age 001aaa boy10 002bbb girl 10003 cccgirl 10004 dddboy...

資料庫sql的join多表

sql join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料。注意,join後的資料記錄數不一定就是左或右表的簡單連線,圖表只代表集合關係,在數量上並不準確,如這個條件後結果,數量大於左表總數。我喜歡這個概念,不過讓我們先來看看這是否會在實際中發揮作用。假設我們有以下的兩個 表a在左邊...