1. 程式人生 > >ORACLE inner join查詢語法套路:

ORACLE inner join查詢語法套路:

首先建立五張表:

分別為:會員資訊資料表member、會員身份表MemberIdentity、會員許可權表MemberLevel、會員類別表MemberSort和會員婚姻狀況表Wedlock。
    
    ●會員資訊資料表member:
    MemberID:自動編號,主鍵(ID號)
    MemberSort:數字(會員類別)
    MemberName:文字,會員姓名
    Password:文字(會員密碼)
    MemberLevel:數字(會員許可權)
    MemberIdentity:數字(會員身份)
    Wedlock:數字(婚姻狀況)
    MemberQQ:文字(QQ號碼)
    MemberEmail:文字(會員郵箱)
    MemberDate:日期/時間(會員註冊日期)
    
    ●會員身份表MemberIdentity:
    MemberIdentity:自動編號,主鍵(ID號)
    IdentityName:文字(會員身份名稱)
    
    ●會員許可權表MemberLevel:
    MemberLevel:自動編號,主鍵(ID號)
    LevelName:文字(會員許可權名稱)
    
    ●會員類別表MemberSort:
    MemberSort:自動編號,主鍵(ID號)
    SortName:文字(會員類別名稱)
    
    ●會員婚姻狀況表Wedlock
    Wedlock:自動編號,主鍵(ID號)
    WedlockName:文字(會員婚姻狀況類別)

比如查詢五張表中所有的欄位:

如下程式碼:

SELECT *
    FROM (((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.Wedlock=Wedlock.Wedlock


    ORDER BY MemberDate DESC
    修改完程式碼後,點選“確定”,大功告成!
    現在,您可以開啟記錄集看一下,五個表中的欄位全部整合在MemberShow記錄集中,您只要將相應的欄位繫結在該欄位想顯示的單元格中即可。這下好了,所有的數字編號全部變成了相應的名稱,如會員許可權,不再是“1”和“2”的數字形式了,而是變成了相應的名稱“未付費會員”和“已付費會員”。其它的數字編號也變成了顯示的文字名稱,是不是很開心呢?
    
    注意事項:
    ●在輸入字母過程中,一定要用英文半形標點符號,單詞之間留一半形空格;
    ●在建立資料表時,如果一個表與多個表聯接,那麼這一個表中的欄位必須是“數字”資料型別,而多個表中的相同欄位必須是主鍵,而且是“自動編號”資料型別。否則,很難聯接成功。
    ●程式碼巢狀快速方法:如,想連線五個表,則只要在連線四個表的程式碼上加一個前後括號(前括號加在FROM的後面,後括號加在程式碼的末尾即可),然後在後括號後面繼續新增“INNER JOIN 表名X ON 表1.欄位號=表X.欄位號”程式碼即可,這樣就可以無限聯接資料表了:)
    
    語法格式:
    其實 INNER JOIN ……ON的語法格式可以概括為:
    FROM (((表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號) INNER JOIN 表3 ON 表1.欄位號=表3.欄位號) INNER JOIN 表4 ON Member.欄位號=表4.欄位號) INNER JOIN 表X ON Member.欄位號=表X.欄位號

    您只要套用該格式就可以了。
    
    現成格式範例:
    雖然我說得已經比較明白了,但為照顧初學者,我還是以本會員註冊系統為例,提供一些現成的語法格式範例,大家只要修改其中的資料表名稱和欄位名稱即可。
    
    連線兩個資料表的用法:
    FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
    語法格式可以概括為:
    FROM 表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號
    
    連線三個資料表的用法:
    FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel 
    語法格式可以概括為:
    FROM (表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號) INNER JOIN 表3 ON 表1.欄位號=表3.欄位號
    
    連線四個資料表的用法:
    FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity
    語法格式可以概括為:
    FROM ((表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號) INNER JOIN 表3 ON 表1.欄位號=表3.欄位號) INNER JOIN 表4 ON Member.欄位號=表4.欄位號
    
    連線五個資料表的用法:
    FROM (((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.Wedlock=Wedlock.Wedlock
    語法格式可以概括為:
    FROM (((表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號) INNER JOIN 表3 ON 表1.欄位號=表3.欄位號) INNER JOIN 表4 ON Member.欄位號=表4.欄位號) INNER JOIN 表5 ON Member.欄位號=表5.欄位號
    
    連線六個資料表的用法:略,與上述聯接方法類似,大家舉一反三吧:)



相關推薦

ORACLE inner join查詢語法套路

首先建立五張表: 分別為:會員資訊資料表member、會員身份表MemberIdentity、會員許可權表MemberLevel、會員類別表MemberSort和會員婚姻狀況表Wedlock。          ●會員資訊資料表member:     MemberI

Oracle inner join、left join、right join 、+左邊或者右邊的區別

我們以Oracle自帶的表來做例子 主要兩張表:dept、emp 一個是部門,一個是員工表結構如下: emp name null? Type Empno not null number(4) ename varchar2(10) job varchar2(9) mgr number(4) hire

Oracle inner join和where區別

1 .WHERE子句中使用的連線語句,在資料庫語言中,被稱為隱性連線。INNER JOIN……ON子句產生的連線稱為顯性連線。(其他JOIN引數也是顯性連線)WHERE 和INNER JOIN產生的連線關係,沒有本質區別,結果也一樣。但是!隱性連線隨著資料庫語言的規範和發展,已經逐漸被淘汰,比較新的資料庫語言

oracle inner join 的效率 [轉]

我做了個試驗,比如有如下語句   select * from table1 t1 inner join table2 t2 on t1.XX=t2.XX inner join table3 t3 on t2.XX =t3.XX , 看他的執行計劃,XX這個列是有索引的,但他

oracle inner join 隱藏的多次連線

Select bu.f_Comechannel,Count(Distinct x.f_username) x ,Sum(bs.f_Paymoney) pmoney From T_BASE_USER_FIRST_TRADE_LOTTY x Inner Join t_Base_U

Oracle -- left join查詢結果不是左表的全部資料的解決方法

left join在實際應用中並不是查出資料都是左邊的全部資料,為什麼呢?看看自己的解決方法吧 SELECT T.xx, T1.xx, ... FROM xxx T LEFT JOIN xxx T1 ON T.ID

連線查詢inner join,left join,right join

感謝原創:https://blog.csdn.net/plg17/article/details/78758593 準備工作:   1)新建兩張表a_table和b_table:   create table a_table(a_id int(10) primary key auto_increment

Oracle聯合多個子查詢inner join

select aaa.*,bbb.xh from (select xn,xq,kcdm,kcmc,xf,xkkh,kcxz from jxrwbview where xn='2017-2018' group by xn,xq,kcdm,kcmc,xf,xkkh,kcxz ) aaa inner joi

sql語法inner join on, left join on, right join on詳細使用方法

inner join(等值連線) 只返回兩個表中聯結欄位相等的行 left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 INNER JOIN 語法: INN

資料庫Oracle與Mysql語法對比聯結(Join

在SQL標準中規劃的(Join)聯結大致分為下面四種: 1. 內聯結:將兩個表中存在聯結關係的欄位符合聯結關係的那些記錄形成記錄集的聯結。 2. 外聯結:分為外左聯結和外右聯結。 左聯結A、B表的意思就是將表A中的全部記錄和表B中聯結的欄位與表A的聯結欄位

Oracle編輯數據時提示這些查詢結果不可更新,請使用ROWI或者SELECT……FOR UPDATE獲得可更新結果

對數 date 一個 更新 bsp ron 我們 pda from 我們在對Oracle數據庫進行操作時,有時會在查詢完結果後想要對其中的某些數據進行操作,當我們點擊編輯(一個鎖標誌)是,會提示我們上述問題中的錯誤:這些查詢結果不可更新,請使用ROWI或者SELECT……F

mysql 優化例子IN 換 INNER JOIN

mysql今天擼代碼時,遇到SQL問題:要將A表查詢的ID,匹配B表的ID,並將B表全部內容查詢出來:未優化前:MySQL [xxuer]> SELECT -> COUNT(*) -> FROM -> t_cmdb_app_version

inner join 多表查詢

light table clas inner cnblogs sel lec select 多表 三表以及三表以上聯合查詢: select table1.ziduan1,table2.ziduan,2,table3,ziduan3 from table1 inner jo

SQL的JOIN語法解析(inner join, left join, right join, full outer join的區別)

問題 至少 caption 左連接 右連接 class hole pty lock 總的來說,四種JOIN的使用/區別可以描述為: left join 會從左表(shop)那裏返回所有的記錄,即使在右表(sale_detail)中沒有匹配的行。 right oute

ORACLE分頁查詢SQL語法——高效的分頁

推薦 col 停止 sql 條件 esc 記錄 table select --1:無ORDER BY排序的寫法。(效率最高)--(經過測試,此方法成本最低,只嵌套一層,速度最快!即使查詢的數據量再大,也幾乎不受影響,速度依然!) SELECT * FROM (SEL

SQL夯實基礎(一)inner join、outer join和cross join的區別

創建 color varchar mage bubuko where 是你 cross http 一、數據構建 先建表,再說話 create database Test use Test create table A ( AID int identity(1

[Mysql語法]--update inner join使用(批量更新)

一:需求 A表和B表的表結構相同,A表是歷史表,B表是增量資料表;想要根據關聯條件更新A表中的資料。 二:表結構 CREATE TABLE `A` (   `id` bigint(20) NOT NULL AUTO_INCREMENT,   `bid` bigin

內連線INNER JOIN

資料準備 1.員工表(tb_emp) CREATE TABLE `tb_emp` ( `employee_id` int(6) NOT NULL AUTO_INCREMENT COMMENT '員工編號', `first_name` varchar(20) DEFAULT

資料庫SQL實踐29使用join查詢方式找出沒有分類的電影id以及名稱

思想: 題目要求使用join查詢方式找出沒有分類的電影id以及名稱。 首先將表film和film_category進行左連線,即若film沒有category_id,則category_id=null 最後用where條件找出沒有category_id的film。 select f.

Oracle 遞迴查詢start with

 什麼時候用到start with ?    (1) 一張表中存放有目錄樹的相關資料(子類id , 父類id )    (2)但是想展示為父子型別的資料給前臺,或者列表(table)中,    (3) 這個時候就可以考