用 INNER JOIN語(yǔ)法聯(lián)接多個(gè)表建記錄集
更新時(shí)間:2006年12月06日 00:00:00 作者:
多表聯(lián)接建立記錄集是十分有用的,因?yàn)槟承┣闆r下,我們需要把數(shù)字?jǐn)?shù)據(jù)類型顯示為相應(yīng)的文本名稱,這就遇到了多表聯(lián)接建立記錄集的問(wèn)題。比如作一個(gè)會(huì)員注冊(cè)系統(tǒng),共有五個(gè)表,會(huì)員信息數(shù)據(jù)表member、會(huì)員身份表MemberIdentity、會(huì)員權(quán)限表MemberLevel、會(huì)員類別表MemberSort和會(huì)員婚姻狀況表Wedlock。如果想把會(huì)員注冊(cè)信息全部顯示出來(lái),肯定要將這四個(gè)表連起來(lái),否則大家看到的某些會(huì)員信息可能只是數(shù)據(jù)編號(hào)。
以會(huì)員類別表來(lái)說(shuō),在其數(shù)據(jù)表中,1代表普通會(huì)員,2代表高級(jí)會(huì)員,3代表終身會(huì)員,在顯示時(shí),如果不將會(huì)員類別表與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián),那么假如我們現(xiàn)在看到的是一名普通會(huì)員的注冊(cè)信息,我們只能看到其類別為1,而誰(shuí)又會(huì)知道1代表的是普通會(huì)員呢?所以要將會(huì)員類別表與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián),關(guān)聯(lián)后,1就顯示為普通會(huì)員,2就顯示為高級(jí)會(huì)員,3就顯示為終身會(huì)員,這樣多好?同理,其它兩個(gè)表也要與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián)才能把數(shù)據(jù)編號(hào)顯示為相應(yīng)的名稱。
步驟一:用Access軟件建立一個(gè)名為Member的數(shù)據(jù)庫(kù),在其中建五個(gè)表,分別為:會(huì)員信息數(shù)據(jù)表member、會(huì)員身份表MemberIdentity、會(huì)員權(quán)限表MemberLevel、會(huì)員類別表MemberSort和會(huì)員婚姻狀況表Wedlock。
●會(huì)員信息數(shù)據(jù)表member:
MemberID:自動(dòng)編號(hào),主鍵(ID號(hào))
MemberSort:數(shù)字(會(huì)員類別)
MemberName:文本,會(huì)員姓名
Password:文本(會(huì)員密碼)
MemberLevel:數(shù)字(會(huì)員權(quán)限)
MemberIdentity:數(shù)字(會(huì)員身份)
Wedlock:數(shù)字(婚姻狀況)
MemberQQ:文本(QQ號(hào)碼)
MemberEmail:文本(會(huì)員郵箱)
MemberDate:日期/時(shí)間(會(huì)員注冊(cè)日期)
●會(huì)員身份表MemberIdentity:
MemberIdentity:自動(dòng)編號(hào),主鍵(ID號(hào))
IdentityName:文本(會(huì)員身份名稱)
●會(huì)員權(quán)限表MemberLevel:
MemberLevel:自動(dòng)編號(hào),主鍵(ID號(hào))
LevelName:文本(會(huì)員權(quán)限名稱)
●會(huì)員類別表MemberSort:
MemberSort:自動(dòng)編號(hào),主鍵(ID號(hào))
SortName:文本(會(huì)員類別名稱)
●會(huì)員婚姻狀況表Wedlock
Wedlock:自動(dòng)編號(hào),主鍵(ID號(hào))
WedlockName:文本(會(huì)員婚姻狀況類別)
說(shuō)明:五個(gè)表建好后,您可以自行設(shè)置您想要的類別,如會(huì)員權(quán)限,您可以設(shè)置兩個(gè)類別--“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”,編號(hào)分別為“1”、“2”,如您設(shè)置了三個(gè)選項(xiàng),那么第三個(gè)選項(xiàng)的編號(hào)當(dāng)然就是“3”了。
下面我們所要作的工作就是把“1”、“2”之類的編號(hào)顯示為“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”,否則,大家誰(shuí)會(huì)知道“1”代表的是“未付費(fèi)會(huì)員”,“2”代表的是“已付費(fèi)會(huì)員”?
步驟二:建DSN數(shù)據(jù)源,建記錄集
●運(yùn)行Dreamweaver MX軟件,在會(huì)員注冊(cè)信息顯示頁(yè)面建一個(gè)名為ConnMember(您也可以起其它的名稱)的DSN數(shù)據(jù)源。
●點(diǎn)擊服務(wù)器行為面板中的“綁定”,建一個(gè)名為MemberShow的數(shù)據(jù)集,“連接”選擇ConnMember,“表格”選擇Member,“列”全選,“排序”選擇MemberDate,降序。點(diǎn)擊“高級(jí)”按鈕,修改SQL框中自動(dòng)生成的代碼:
原代碼為:
SELECT *
FROM Member
ORDER BY MemberDate DESC
將代碼修改為:
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
修改完代碼后,點(diǎn)擊“確定”,大功告成!
現(xiàn)在,您可以打開(kāi)記錄集看一下,五個(gè)表中的字段全部集成在MemberShow記錄集中,您只要將相應(yīng)的字段綁定在該字段想顯示的單元格中即可。這下好了,所有的數(shù)字編號(hào)全部變成了相應(yīng)的名稱,如會(huì)員權(quán)限,不再是“1”和“2”的數(shù)字形式了,而是變成了相應(yīng)的名稱“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”。其它的數(shù)字編號(hào)也變成了顯示的文本名稱,是不是很開(kāi)心呢?
注意事項(xiàng):
●在輸入字母過(guò)程中,一定要用英文半角標(biāo)點(diǎn)符號(hào),單詞之間留一半角空格;
●在建立數(shù)據(jù)表時(shí),如果一個(gè)表與多個(gè)表聯(lián)接,那么這一個(gè)表中的字段必須是“數(shù)字”數(shù)據(jù)類型,而多個(gè)表中的相同字段必須是主鍵,而且是“自動(dòng)編號(hào)”數(shù)據(jù)類型。否則,很難聯(lián)接成功。
●代碼嵌套快速方法:如,想連接五個(gè)表,則只要在連接四個(gè)表的代碼上加一個(gè)前后括號(hào)(前括號(hào)加在FROM的后面,后括號(hào)加在代碼的末尾即可),然后在后括號(hào)后面繼續(xù)添加“INNER JOIN 表名X ON 表1.字段號(hào)=表X.字段號(hào)”代碼即可,這樣就可以無(wú)限聯(lián)接數(shù)據(jù)表了:)
語(yǔ)法格式:
其實(shí) INNER JOIN ……ON的語(yǔ)法格式可以概括為:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)) INNER JOIN 表X ON Member.字段號(hào)=表X.字段號(hào)
您只要套用該格式就可以了。
現(xiàn)成格式范例:
雖然我說(shuō)得已經(jīng)比較明白了,但為照顧初學(xué)者,我還是以本會(huì)員注冊(cè)系統(tǒng)為例,提供一些現(xiàn)成的語(yǔ)法格式范例,大家只要修改其中的數(shù)據(jù)表名稱和字段名稱即可。
連接兩個(gè)數(shù)據(jù)表的用法:
FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
語(yǔ)法格式可以概括為:
FROM 表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)
連接三個(gè)數(shù)據(jù)表的用法:
FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel
語(yǔ)法格式可以概括為:
FROM (表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)
連接四個(gè)數(shù)據(jù)表的用法:
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
語(yǔ)法格式可以概括為:
FROM ((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)
連接五個(gè)數(shù)據(jù)表的用法:
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
語(yǔ)法格式可以概括為:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)) INNER JOIN 表5 ON Member.字段號(hào)=表5.字段號(hào)
以會(huì)員類別表來(lái)說(shuō),在其數(shù)據(jù)表中,1代表普通會(huì)員,2代表高級(jí)會(huì)員,3代表終身會(huì)員,在顯示時(shí),如果不將會(huì)員類別表與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián),那么假如我們現(xiàn)在看到的是一名普通會(huì)員的注冊(cè)信息,我們只能看到其類別為1,而誰(shuí)又會(huì)知道1代表的是普通會(huì)員呢?所以要將會(huì)員類別表與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián),關(guān)聯(lián)后,1就顯示為普通會(huì)員,2就顯示為高級(jí)會(huì)員,3就顯示為終身會(huì)員,這樣多好?同理,其它兩個(gè)表也要與會(huì)員詳細(xì)數(shù)據(jù)表相關(guān)聯(lián)才能把數(shù)據(jù)編號(hào)顯示為相應(yīng)的名稱。
步驟一:用Access軟件建立一個(gè)名為Member的數(shù)據(jù)庫(kù),在其中建五個(gè)表,分別為:會(huì)員信息數(shù)據(jù)表member、會(huì)員身份表MemberIdentity、會(huì)員權(quán)限表MemberLevel、會(huì)員類別表MemberSort和會(huì)員婚姻狀況表Wedlock。
●會(huì)員信息數(shù)據(jù)表member:
MemberID:自動(dòng)編號(hào),主鍵(ID號(hào))
MemberSort:數(shù)字(會(huì)員類別)
MemberName:文本,會(huì)員姓名
Password:文本(會(huì)員密碼)
MemberLevel:數(shù)字(會(huì)員權(quán)限)
MemberIdentity:數(shù)字(會(huì)員身份)
Wedlock:數(shù)字(婚姻狀況)
MemberQQ:文本(QQ號(hào)碼)
MemberEmail:文本(會(huì)員郵箱)
MemberDate:日期/時(shí)間(會(huì)員注冊(cè)日期)
●會(huì)員身份表MemberIdentity:
MemberIdentity:自動(dòng)編號(hào),主鍵(ID號(hào))
IdentityName:文本(會(huì)員身份名稱)
●會(huì)員權(quán)限表MemberLevel:
MemberLevel:自動(dòng)編號(hào),主鍵(ID號(hào))
LevelName:文本(會(huì)員權(quán)限名稱)
●會(huì)員類別表MemberSort:
MemberSort:自動(dòng)編號(hào),主鍵(ID號(hào))
SortName:文本(會(huì)員類別名稱)
●會(huì)員婚姻狀況表Wedlock
Wedlock:自動(dòng)編號(hào),主鍵(ID號(hào))
WedlockName:文本(會(huì)員婚姻狀況類別)
說(shuō)明:五個(gè)表建好后,您可以自行設(shè)置您想要的類別,如會(huì)員權(quán)限,您可以設(shè)置兩個(gè)類別--“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”,編號(hào)分別為“1”、“2”,如您設(shè)置了三個(gè)選項(xiàng),那么第三個(gè)選項(xiàng)的編號(hào)當(dāng)然就是“3”了。
下面我們所要作的工作就是把“1”、“2”之類的編號(hào)顯示為“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”,否則,大家誰(shuí)會(huì)知道“1”代表的是“未付費(fèi)會(huì)員”,“2”代表的是“已付費(fèi)會(huì)員”?
步驟二:建DSN數(shù)據(jù)源,建記錄集
●運(yùn)行Dreamweaver MX軟件,在會(huì)員注冊(cè)信息顯示頁(yè)面建一個(gè)名為ConnMember(您也可以起其它的名稱)的DSN數(shù)據(jù)源。
●點(diǎn)擊服務(wù)器行為面板中的“綁定”,建一個(gè)名為MemberShow的數(shù)據(jù)集,“連接”選擇ConnMember,“表格”選擇Member,“列”全選,“排序”選擇MemberDate,降序。點(diǎn)擊“高級(jí)”按鈕,修改SQL框中自動(dòng)生成的代碼:
原代碼為:
SELECT *
FROM Member
ORDER BY MemberDate DESC
將代碼修改為:
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
修改完代碼后,點(diǎn)擊“確定”,大功告成!
現(xiàn)在,您可以打開(kāi)記錄集看一下,五個(gè)表中的字段全部集成在MemberShow記錄集中,您只要將相應(yīng)的字段綁定在該字段想顯示的單元格中即可。這下好了,所有的數(shù)字編號(hào)全部變成了相應(yīng)的名稱,如會(huì)員權(quán)限,不再是“1”和“2”的數(shù)字形式了,而是變成了相應(yīng)的名稱“未付費(fèi)會(huì)員”和“已付費(fèi)會(huì)員”。其它的數(shù)字編號(hào)也變成了顯示的文本名稱,是不是很開(kāi)心呢?
注意事項(xiàng):
●在輸入字母過(guò)程中,一定要用英文半角標(biāo)點(diǎn)符號(hào),單詞之間留一半角空格;
●在建立數(shù)據(jù)表時(shí),如果一個(gè)表與多個(gè)表聯(lián)接,那么這一個(gè)表中的字段必須是“數(shù)字”數(shù)據(jù)類型,而多個(gè)表中的相同字段必須是主鍵,而且是“自動(dòng)編號(hào)”數(shù)據(jù)類型。否則,很難聯(lián)接成功。
●代碼嵌套快速方法:如,想連接五個(gè)表,則只要在連接四個(gè)表的代碼上加一個(gè)前后括號(hào)(前括號(hào)加在FROM的后面,后括號(hào)加在代碼的末尾即可),然后在后括號(hào)后面繼續(xù)添加“INNER JOIN 表名X ON 表1.字段號(hào)=表X.字段號(hào)”代碼即可,這樣就可以無(wú)限聯(lián)接數(shù)據(jù)表了:)
語(yǔ)法格式:
其實(shí) INNER JOIN ……ON的語(yǔ)法格式可以概括為:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)) INNER JOIN 表X ON Member.字段號(hào)=表X.字段號(hào)
您只要套用該格式就可以了。
現(xiàn)成格式范例:
雖然我說(shuō)得已經(jīng)比較明白了,但為照顧初學(xué)者,我還是以本會(huì)員注冊(cè)系統(tǒng)為例,提供一些現(xiàn)成的語(yǔ)法格式范例,大家只要修改其中的數(shù)據(jù)表名稱和字段名稱即可。
連接兩個(gè)數(shù)據(jù)表的用法:
FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
語(yǔ)法格式可以概括為:
FROM 表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)
連接三個(gè)數(shù)據(jù)表的用法:
FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel
語(yǔ)法格式可以概括為:
FROM (表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)
連接四個(gè)數(shù)據(jù)表的用法:
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
語(yǔ)法格式可以概括為:
FROM ((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)
連接五個(gè)數(shù)據(jù)表的用法:
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
語(yǔ)法格式可以概括為:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)) INNER JOIN 表5 ON Member.字段號(hào)=表5.字段號(hào)
相關(guān)文章
搭建小型access數(shù)據(jù)庫(kù)實(shí)錄
access其最大的優(yōu)點(diǎn)是:簡(jiǎn)單易學(xué)!非計(jì)算機(jī)專業(yè)的人員,也能學(xué)會(huì)。所以用它作為數(shù)據(jù)庫(kù)的入門來(lái)學(xué)習(xí)是非常不錯(cuò)的選擇。本文主要講訴怎樣一步步搭建一個(gè)小型的ACCESS數(shù)據(jù)庫(kù)2014-08-08access中顯示MSysObjects系統(tǒng)表的設(shè)置方法
這篇文章主要介紹了access中顯示MSysObjects系統(tǒng)表的設(shè)置方法,在一些特別的環(huán)境中需要顯示MSysObjects系統(tǒng)表,需要的朋友可以參考下2014-08-08Access使用宏控制程序--1.6.使用宏的幾點(diǎn)說(shuō)明
Access使用宏控制程序--1.6.使用宏的幾點(diǎn)說(shuō)明...2006-11-11ADODB連接access是出現(xiàn) 80004005 錯(cuò)誤的解決方法
今天我寫的程序放到客戶的機(jī)器上,一運(yùn)行就出現(xiàn)Selected Collating Sequence Not Supported 80004005這個(gè)錯(cuò)誤。經(jīng)過(guò)google一番后,解決如下。2009-09-09Access使用查詢 在查詢中執(zhí)行計(jì)算的注意事項(xiàng)
Access使用查詢 在查詢中執(zhí)行計(jì)算的注意事項(xiàng)...2006-11-11Access數(shù)據(jù)庫(kù)不能寫不能更新的解決方法
本文提供了Access數(shù)據(jù)庫(kù)不能寫不能更新的解決方法,主要是權(quán)限原因,具體看下面的具體解決方法2013-11-11