使用INNERJOIN语法连接多张表建立记录集非常好用。文本名称,遇到创建多表连接记录集的问题。例如作为一个会员注册系统,一共有五张表,会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wedlock。如果要显示所有的会员注册信息,就必须把这四个表连起来,否则你看到的有些会员信息可能只是数据号。以会员类别表为例,在其数据表中,1代表普通会员,2代表高级会员,3代表终身会员。在展示的时候,如果会员类别表没有关联到会员明细数据表,那么如果我们现在看到的是一个普通会员的注册信息,只能看到它的类别是1,谁知道1代表普通会员?所以我们需要把会员类别表和会员明细数据表关联起来,关联最后1显示为普通会员,2显示为高级会员,3显示为终身会员。这有多好?同理,另外两张表也必须关联会员明细数据表,才能将数据编号显示为对应的名称。前天在做网站后台的时候遇到了这个问题。在面包论坛、粉丝俱乐部、蓝色理想、5D多媒体论坛发帖求助,都没有得到回复。我不得不自己研究它。折腾了两天,终于成功了。现写成教程分享给大家,希望大家少走弯路。本教程是将五个表链接在一起。如果需要,您可以将更多表链接在一起。方法类似~第一步:用Access软件建立一个名为Member的数据库,并在其中建立五个表。它们是:会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wedlock。●会员信息数据表member:MemberID:自动编号,主键(身份证号)MemberSort:编号(会员类别)MemberName:text,会员名Password:text(会员密码)MemberLevel:number(会员权限)MemberIdentity:编号(会员identity)Wedlock:number(婚姻状况)MemberQQ:text(QQ号)MemberEmail:text(会员邮箱)MemberDate:date/time(会员注册日期)会员身份表MemberIdentity:MemberIdentity:自动编号,主键(身份证号)IdentityName:text(会员身份名称)会员权限表MemberLevel:MemberLevel:自动编号,主键(身份证号)LevelName:text(会员权限名称)会员分类表MemberSort:MemberSort:自动编号,主键(身份证号)SortName:text(会员类别名称)●会员婚姻状况表WedlockWedlock:自动编号,主键(身份证号)WedlockName:文本(会员婚姻状况类别)说明:五张表建好后,哟你可以设置你想要的类别,比如会员权限,你可以设置两个类别-“未付费会员”和“付费会员”,数字分别是“1”和“2”,如果你设置三个选项,那么数字第三个选项当然是“3”了。我们接下来要做的就是把“1”、“2”这样的数字显示为“未付费会员”和“付费会员”,不然谁知道“1”代表“未付费会员”,“2”代表“付费会员”?第二步:创建DSN数据源,创建记录集运行DreamweaverMX软件,在会员注册信息显示页面创建一个ConnMember(也可以用其他名称)DSN数据源。●在服务器行为面板中点击“绑定”,创建一个名为MemberShow的数据集,“连接”选择“ConnMember”,“表”选择“成员”,“列”选择“全部”,“排序”选择“成员日期”,降序排列。点击“高级”按钮修改SQL框中自动生成的代码:原代码为:SELECT*FROMMemberORDERBYMemberDateDESC代码修改为:SELECT*FROM(((MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort=MemberSort.MemberSort)INNERJOINMemberLevelONMemberLevel=MemberLevel.MemberONMemberINMemberLevel)INNERJOIN.MemberIdentity=MemberIdentity.MemberIdentity)INNERJOINWedlockONMember.Wedlock=Wedlock.WedlockORDERBYMemberDateDESC修改代码后点击“确定”,大功告成!现在,您可以打开记录集,看到五个表中的字段都集成在MemberShow记录集中。只需在该字段要显示的单元格中绑定相应的字段即可。这下好了,所有的数字都换成了对应的名字,比如会员特权,不再是“1”和“2”的数字形式,而是变成了对应的名字“unpaidmember”和“Paid”会员”。其他数字也都变成了显示的文字名称。你快乐吗?注意事项:●在输入字母的过程中,一定要使用英文半角标点符号,字与字之间留半角空格;●创建数据表时,如果一个表与多个表连接,则该表中的字段必须为“数字”数据类型,多个表中的相同字段必须为主键且为“自动编号”“数据类型。否则很难连接成功。●代码嵌套快速方法:比如要连接5张表,只需要在连接4张表的代码上加上前后括号即可(前括号加在FROM后面,后括号加在FROM后面)代码末尾),然后在后括号后继续添加代码“INNERJOIN表名XON表1.字段号=表X.字段号”,这样就可以无限连接数据表了:)语法格式:in其实INNERJOIN...ON的语法格式可以总结为:FROM(((表1INNERJOIN表2ON表1.字段号=表2.字段号)INNERJOIN表3ON表1.字段号=表3.字段Number)INNERJOINTable4ONMember.FieldNumber=Table4.FieldNumber)INNERJOINtableXONMember.FieldNo.=tableX.FieldNo.你只需要应用这个格式。现成格式示例:虽然说的比较清楚,但是为了照顾初学者,我还是以这个会员注册系统为例,提供一些现成语法格式的示例。只需要修改其中的数据表名和字段名即可。.连接两张数据表的用法:FROMMemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort语法格式可以概括为:FROMtable1INNERJOINtable2ONtable1.Fieldnumber=table2.Fieldnumber连接三张数据表的用法:FROM(MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort)INNERJOINMemberLevelONMember.MemberLevel=MemberLevel.MemberLevel语法可以概括为:FROM(Table1INNERJOINTable2ONTable1.FieldNumber=Table2.FieldNumber)INNERJOINTable3ONTable1.FieldNumber=Table3.FieldNumber连接四张数据表的用法:FROM((MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberIdentityROM)INNERJOINMemberLevelONMember.MemberLevel=MemberLevel.MemberLevel)INNERJOINMemberIdentityONMe??mber.MemberIdentity=MemberIdentity.MemberIdentityROM(INNTable1FONJERIdentity=Fieldnumber表语法可以总结为2.字段号)INNERJOINtable3ONtable1.fieldnumber=table3.field号)INNERJOIN表4ONMember。fieldnumber=table4.fieldnumber连接五个数据表usage:FROM(((MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort)INNERJOINMemberLevelONMember.MemberLevel=MemberLevel.MemberLevel)INNERJOINMemberIdentityONMe??mber.MemberIdentity=MemberIdentity.MemberIdentity.INNERJOINMemberIdentity.INNERJOINMemberIdentity.MemberIdentity.INNERJOINWedlockWedlockON语法格式可以概括为:FROM(((表1INNERJOIN表2ON表1.字段号=表2.字段号)INNERJOIN表3ON表1.字段号=表3.字段号)INNERJOIN表4ONMember.字段编号=表4.字段编号)INNERJOIN表5ONMember。fieldnumber=Table5.fieldnumbers连接六张数据表的用法:省略,与上述连接方式类似,举一反三:)
