日期:2013-12-11  浏览次数:20493 次

用 INNER JOIN语法联接多个表建记录集 多表联接建立记录集是十分有用的,由于某些情况下,我们需求把数字数据类型显示为相应的文本名称,这就遇到了多表联接建立记录集的问题。比如作一个会员注册系统,共有五个表,会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻情况表Wedlock。如果想把会员注册信息全部显示出来,肯定要将这四个表连起来,否则大家看到的某些会员信息可能只是数据编号。
    以会员类别表来说,在其数据表中,1代表普通会员,2代表高级会员,3代表终身会员,在显示时,如果不将会员类别表与会员详细数据表相关联,那么假如我们如今看到的是一名普通会员的注册信息,我们只能看到其类别为1,而谁又会知道1代表的是普通会员呢?所以要将会员类别表与会员详细数据表相关联,关联后,1就显示为普通会员,2就显示为高级会员,3就显示为终身会员,这样多好?同理,其它两个表也要与会员详细数据表相关联才能把数据编号显示为相应的名称。
   
    前天制造网站后台时遇到此问题,在面包论坛、狂迷俱乐部、蓝色理想、和5D多媒体论坛发了贴子求救,都没有获得答案,只好本人研讨,花了两天时间终于成功,现将其写成教程供大家分享,希望大家少走弯路。
    本教程是把五个表联在一同,如果情愿,您可以将更多的表联在一同,方法大同小异啦~
   
    步骤一:用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:文本(会员婚姻情况类别)
    说明:五个表建好后,您可以自行设置您想要的类别,如会员权限,您可以设置两个类别--“未付费会员”和“已付费会员”,编号分别为“1”、“2”,如您设置了三个选项,那么第三个选项的编号当然就是“3”了。
    下面我们所要作的任务就是把“1”、“2”之类的编号显示为“未付费会员”和“已付费会员”,否则,大家谁会知道“1”代表的是“未付费会员”,“2”代表的是“已付费会员”?
   
    步骤二:建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记录集中,您只需将相应的字段绑定在该字段想显示的单元格中即可。这下好了,所有的数字编号全部变成了相应的名称,如会员权限,不再是“1”和“2”的数字方式了,而是变成了相应的名称“未付费会员”和“已付费会员”。其它的数字编号也变成了显示的文本名称,是不是很开心呢?
   
    留意事项:
    ●在输入字母过程中,一定要用英文半角标点符号,单词之间留一半角空格;
    ●在建立数据表时,如果一个表与多个表联接,那么这一个表中的字段必须是“数字”数据类型,而多个表中的相反字段必须是主键,而且是“自动编号”数据类型。否则,很难联接成功。
    ●代码嵌套快速方法:如,想连接五个表,则只需在连接四个表的代码上加一个前后括号(前括号加在FROM的后面,后括号加在代码的末尾即可),然后