用 INNER JOIN语法联接多个表建记录集
来源:程序员人生 发布时间:2013-12-10 00:22:11 阅读次数:2560次
用 INNER JOIN语法联接多个表建记录集
多表联接建立记录集是十分有用的
因为某些情况下
我们需要把数字数据类型显示为相应的文本名称
这就遇到了多表联接建立记录集的问题
比如作一个会员注册系统
共有五个表
会员信息数据表member
会员身份表MemberIdentity
会员权限表MemberLevel
会员类别表MemberSort和会员婚姻状况表Wedlock
如果想把会员注册信息全部显示出来
肯定要将这四个表连起来
否则大家看到的某些会员信息可能只是数据编号
以会员类别表来说
在其数据表中
代表普通会员
代表高级会员
代表终身会员
在显示时
如果不将会员类别表与会员详细数据表相关联
那么假如我们现在看到的是一名普通会员的注册信息
我们只能看到其类别为
而谁又会知道
代表的是普通会员呢?所以要将会员类别表与会员详细数据表相关联
关联后
就显示为普通会员
就显示为高级会员
就显示为终身会员
这样多好?同理
其它两个表也要与会员详细数据表相关联才能把数据编号显示为相应的名称
前天制作网站后台时遇到此问题
在面包论坛
狂迷俱乐部
蓝色理想
和
D多媒体论坛发了贴子求救
都没有获得答案
只好自己研究
花了两天时间终于成功
现将其写成教程供大家分享
希望大家少走弯路
本教程是把五个表联在一起
如果愿意
您可以将更多的表联在一起
方法大同小异啦~
步骤一
用Access软件建立一个名为Member的数据库
在其中建五个表
分别为
会员信息数据表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
文本(会员婚姻状况类别)
说明
五个表建好后
您可以自行设置您想要的类别
如会员权限
您可以设置两个类别--
未付费会员
和
已付费会员
编号分别为
如您设置了三个选项
那么第三个选项的编号当然就是
了
下面我们所要作的工作就是把
之类的编号显示为
未付费会员
和
已付费会员
否则
大家谁会知道
代表的是
未付费会员
代表的是
已付费会员
?
步骤二
建DSN数据源
建记录集
●运行Dreamweaver MX软件
在会员注册信息显示页面建一个名为ConnMember(您也可以起其它的名称)的DSN数据源
●点击服务器行为面板中的
绑定
建一个名为MemberShow的数据集
连接
选择ConnMember
表格
选择Member
列
全选
排序
选择MemberDate
降序
点击
高级
按钮
修改SQL框中自动生成的代码
原代码为
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
修改完代码后
点击
确定
大功告成!
现在
您可以打开记录集看一下
五个表中的字段全部集成在MemberShow记录集中
您只要将相应的字段绑定在该字段想显示的单元格中即可
这下好了
所有的数字编号全部变成了相应的名称
如会员权限
不再是
和
的数字形式了
而是变成了相应的名称
未付费会员
和
已付费会员
其它的数字编号也变成了显示的文本名称
是不是很开心呢?
注意事项
●在输入字母过程中
一定要用英文半角标点符号
单词之间留一半角空格
●在建立数据表时
如果一个表与多个表联接
那么这一个表中的字段必须是
数字
数据类型
而多个表中的相同字段必须是主键
而且是
自动编号
数据类型
否则
很难联接成功
●代码嵌套快速方法
如
想连接五个表
则只要在连接四个表的代码上加一个前后括号(前括号加在FROM的后面
后括号加在代码的末尾即可)
然后在后括号后面继续添加
INNER JOIN 表名X ON 表
字段号=表X
字段号
代码即可
这样就可以无限联接数据表了
)
语法格式
其实 INNER JOIN ……ON的语法格式可以概括为
FROM (((表
INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON Member
字段号=表
字段号) INNER JOIN 表X ON Member
字段号=表X
字段号
您只要套用该格式就可以了
现成格式范例
虽然我说得已经比较明白了
但为照顾初学者
我还是以本会员注册系统为例
提供一些现成的语法格式范例
大家只要修改其中的数据表名称和字段名称即可
连接两个数据表的用法
FROM Member INNER JOIN MemberSort ON Member
MemberSort=MemberSort
MemberSort
语法格式可以概括为
FROM 表
INNER JOIN 表
ON 表
字段号=表
字段号
连接三个数据表的用法
FROM (Member INNER JOIN MemberSort ON Member
MemberSort=MemberSort
MemberSort) INNER JOIN MemberLevel ON Member
MemberLevel=MemberLevel
MemberLevel
语法格式可以概括为
FROM (表
INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON 表
字段号=表
字段号
连接四个数据表的用法
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 ((表
INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON Member
字段号=表
字段号
连接五个数据表的用法
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 (((表
INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON 表
字段号=表
字段号) INNER JOIN 表
ON Member
字段号=表
字段号) INNER JOIN 表
ON Member
字段号=表
字段号
连接六个数据表的用法
略
与上述联接方法类似
大家举一反三吧
)
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠