国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > access > 用 INNER JOIN语法联接多个表建记录集

用 INNER JOIN语法联接多个表建记录集

来源:程序员人生   发布时间:2013-12-10 00:22:11 阅读次数:2593次
用 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 MemberMemberSort=MemberSortMemberSort) INNER JOIN MemberLevel ON MemberMemberLevel=MemberLevelMemberLevel) INNER JOIN MemberIdentity ON MemberMemberIdentity=MemberIdentityMemberIdentity) INNER JOIN Wedlock ON MemberWedlock=WedlockWedlock
    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 MemberMemberSort=MemberSortMemberSort
    语法格式可以概括为
    FROM 表 INNER JOIN 表 ON 表字段号=表字段号

    连接三个数据表的用法
    FROM (Member INNER JOIN MemberSort ON MemberMemberSort=MemberSortMemberSort) INNER JOIN MemberLevel ON MemberMemberLevel=MemberLevelMemberLevel 
    语法格式可以概括为
    FROM (表 INNER JOIN 表 ON 表字段号=表字段号) INNER JOIN 表 ON 表字段号=表字段号

    连接四个数据表的用法
    FROM ((Member INNER JOIN MemberSort ON MemberMemberSort=MemberSortMemberSort) INNER JOIN MemberLevel ON MemberMemberLevel=MemberLevelMemberLevel) INNER JOIN MemberIdentity ON MemberMemberIdentity=MemberIdentityMemberIdentity
    语法格式可以概括为
    FROM ((表 INNER JOIN 表 ON 表字段号=表字段号) INNER JOIN 表 ON 表字段号=表字段号) INNER JOIN 表 ON Member字段号=表字段号

    连接五个数据表的用法
    FROM (((Member INNER JOIN MemberSort ON MemberMemberSort=MemberSortMemberSort) INNER JOIN MemberLevel ON MemberMemberLevel=MemberLevelMemberLevel) INNER JOIN MemberIdentity ON MemberMemberIdentity=MemberIdentityMemberIdentity) INNER JOIN Wedlock ON MemberWedlock=WedlockWedlock
    语法格式可以概括为
    FROM (((表 INNER JOIN 表 ON 表字段号=表字段号) INNER JOIN 表 ON 表字段号=表字段号) INNER JOIN 表 ON Member字段号=表字段号) INNER JOIN 表 ON Member字段号=表字段号

    连接六个数据表的用法与上述联接方法类似大家举一反三吧
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生