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在左邊...