jpi多表联查_数据库两表联查、多表联查,多重联查
表連接查詢
【小編用的是Oracle數據庫,Oracle數據庫區分表名與字段名的大小寫,所以大家進行查詢的時候記得注意雙引號喲~】
有表
表名:AAA 字段: id name tag
表名:BBB 字段: id ban qq
表名:AABB字段: id area location
分類:
1.內連接 inner join
select 列名 from 主表 inner join 從表
on 主表和從表關系
注意:
(1)必須要有on語句
(2)關系必須兩表中都成立
主表和從表:
特點:結果是兩表之間的公共數據
公共數據就是說兩表中關系列的值要對應
比如:
SELECT * from ?AAA INNER JOIN BBB ON AAA."id"=BBB."id"
查詢顯示:
[只顯示條件都成立的數據]
2.外連接 outer join
a)左外連接 left outer join
select 列名 from 主表 left outer join 從表
on 關系 .....
SELECT * from ?AAA LEFT JOIN BBB ON AAA."id"=BBB."id"
查詢顯示:
[左邊為主表,主表全部顯示,右邊為副表,右邊無符合數據時顯示null,不符合的數據不會顯示]
b)右外連接 right outer join
select 列名 from 從表 right outer join 主表
on 關系 .....
SELECT * from ?AAA RIGHT JOIN BBB ON AAA."id"=BBB."id"
查詢顯示:
[右邊為主表,主表全部顯示,左邊為副表,左邊無符合數據時顯示null,不符合的數據不會顯示]
c)全外連接 full outer join
select 列名 from 主表 full outer join 主表
on 關系 .....
SELECT * from ?AAA ?full outer ?JOIN BBB ON AAA."id"=BBB."id"
查詢顯示:
[左邊為主表,右邊為副表,主表和副表全部顯示,右邊無符合數據時顯示null,左邊無符合數據時顯示null,符合條件的數據會顯示在一行]
3.交叉連接 cross join
select 列名 from 主表 cross join 主表;
SELECT * from ?AAA ? cross ?JOIN BBB
查詢顯示:
[左邊為主表,右邊為副表,顯示的數據為乘積形式的數據。]
交叉連接查詢不能帶on子語
結果:兩表查詢結果的笛卡爾乘積
左表有3行 ? ?右表有3行數
結果:9行
附加:另一種連接查詢,將多個表用逗號隔開查詢
1.SELECT * from ?AAA,BBB where AAA."id"=BBB."id"
[類似于內連接,只顯示條件都成立的數據]
2.SELECT * from ?AAA , BBB ;--不帶where關系條件
[類似于交叉連接,左邊為主表,右邊為副表,顯示的數據為乘積形式的數據。]
3.SELECT * from ?AAA INNER JOIN BBB ON AAA."id"=BBB."id" INNER JOIN AABB ON BBB."id"=AABB."id"
SELECT * from ?AAA INNER JOIN BBB ON AAA."id"=BBB."id" LEFT ?JOIN AABB ON BBB."id"=AABB."location"
SELECT * from ?AAA RIGHT ?JOIN BBB ON AAA."tag"=BBB."ban" right ?JOIN AABB ON BBB."id"=AABB."id"
[可以無限連接,想必到這應該懂了吧?想怎么join就怎么join,需要滿足條件才顯示的則要滿足條件才顯示,左右連接需要補null的,則要補null。]
還有就是:on 的時候可以寫多個條件,例如:
SELECT * from ?AAA ?full outer ?JOIN BBB ON AAA."id"=BBB."id" and AAA."name"=BBB."ban" and AAA."tag"=BBB."qq"
覺得有用的朋友希望可以幫忙“贊”一下喲(贈人玫瑰手有余香),謝謝^_^
總結
以上是生活随笔為你收集整理的jpi多表联查_数据库两表联查、多表联查,多重联查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 枸杞减肥法一个月可以减多少斤
- 下一篇: mysql 左连接 怎么走索引_数据库索