




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实现SQL中JOIN联接多个表查询(两个以上也可以) 作者:水寒 日期:2007-02-05字体大小: 小 中 大首先说个简单的,两个表查询:有两个表,文章表中TypeId字段记录栏目Id,栏目表中的字段是栏目Id和栏目名,现在要达到的效果就是读取文章列表的时候显示栏目名称。以前没用过inner join外联操作,所以就束手无策了。其实有些功能是仅仅靠SQL语句就可以实现的,inner join能够组合两个表中的记录,只要在公共字段之中有相符的值。所以要显示栏目名称,只要用如下SQL语句:Select Article.id,Article.content,栏目表.栏目名称 FROM Article innerjoin 栏目表 on 栏目表.id=Article.ArType orDER BY ArId DESC多个表(多于两个表的联接查询)实现:附相关文章:多表联接建立记录集是十分有用的,因为某些情况下,我们需要把数字数据类型显示为相应的文本名称,这就遇到了多表联接建立记录集的问题。比如作一个会员注册系统,共有五个表,会员信息数据表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:文本(会员类别名称)会员婚姻状况表WedlockWedlock:自动编号,主键(ID号)WedlockName:文本(会员婚姻状况类别)说明:五个表建好后,您可以自行设置您想要的类别,如会员权限,您可以设置两个类别“未付费会员”和“已付费会员”,编号分别为“1”、“2”,如您设置了三个选项,那么第三个选项的编号当然就是“3”了。下面我们所要作的工作就是把“1”、“2”之类的编号显示为“未付费会员”和“已付费会员”,否则,大家谁会知道“1”代表的是“未付费会员”,“2”代表的是“已付费会员”?步骤二:建DSN数据源,建记录集运行Dreamweaver MX软件,在会员注册信息显示页面建一个名为ConnMember(您也可以起其它的名称)的DSN数据源。点击服务器行为面板中的“绑定”,建一个名为MemberShow的数据集,“连接”选择ConnMember,“表格”选择Member,“列”全选,“排序”选择MemberDate,降序。点击“高级”按钮,修改SQL框中自动生成的代码:原代码为:Select *FROM MemberorDER 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.WedlockorDER BY MemberDate DESC修改完代码后,点击“确定”,大功告成! 现在,您可以打开记录集看一下,五个表中的字段全部集成在MemberShow记录集中,您只要将相应的字段绑定在该字段想显示的单元格中即可。这下好了,所有的数字编号全部变成了相应的名称,如会员权限,不再是“1”和“2”的数字形式了,而是变成了相应的名称“未付费会员”和“已付费会员”。其它的数字编号也变成了显示的文本名称,是不是很开心呢?注意事项:在输入字母过程中,一定要用英文半角标点符号,单词之间留一半角空格;在建立数据表时,如果一个表与多个表联接,那么这一个表中的字段必须是“数字”数据类型,而多个表中的相同字段必须是主键,而且是“自动编号”数据类型。否则,很难联接成功。 代码嵌套快速方法:如,想连接五个表,则只要在连接四个表的代码上加一个前后括号(前括号加在FROM的后面,后括号加在代码的末尾即可),然后在后括号后面继续添加“INNER JOIN 表名X ON 表1.字段号=表X.字段号”代码即可,这样就可以无限联接数据表了:)语法格式:其实 INNER JOIN ON的语法格式可以概括为:FROM(表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号)INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表X ON Member.字段号=表X.字段号您只要套用该格式就可以了。现成格式范例:虽然我说得已经比较明白了,但为照顾初学者,我还是以本会员注册系统为例,提供一些现成的语法格式范例,大家只要修改其中的数据表名称和字段名称即可。连接两个数据表的用法:FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort语法格式可以概括为:FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号连接三个数据表的用法:FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel 语法格式可以概括为:FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号连接四个数据表的用法: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 (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号连接五个数据表的用法: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(表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号)INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号-INNER JOIN 运算组合两个表中的记录,只要在公共字段之中有相符的值。语法FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2INNER JOIN 运算可分为以下几个部分:部分 说明table1, table2 记录被组合的表的名称。field1, field2 被联接的字段的名称。若它们不是由数字构成的,则这些字段必须为相同的数据类型并包含同类数据,但它们无须具有相同的名称。compopr 任何的关系比较运算子:=, , =, 或 .说明可以在 FROM 子句中使用INNER JOIN运算。.这是最普通的联接类型。只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录。可以使用 INNER JOIN 与部门表及员工表选择每一个部门中的全部员工。反之,可以使用 LEFT JOIN或 RIGHT JOIN运算创建 outer join,从而选择所有部门(即使有些并没有员工)或所有员工(即使有些尚未分配到部门)。若试图联接包含 Memo或 OLE Object数据的字段,会导致错误。可以联接任何两个相同类型的数值字段。例如,可以联接 AutoNumber和 Long字段,因为它们类型相似。但不能联接 Single 和 Double 类型的字段。下列示例显示如何在类标识符字段联接类表及产品表:Select CategoryName, ProductNameFROM Categories INNER JOIN ProductsON Categories.CategoryID = Products.CategoryID;在上面的示例中,类标识符是已被联接的字段,但是它并不包含在查询输出中,因它并非被包含在 Select 语句之中。在这个示例中,若要包含联接字段,将字段名包含在 Select 语句中, Categories.CategoryID.也可以使用下列语法,在一个 JOIN 语句中链接多个 ON 子句:Select fieldsFROM table1 INNER JOIN table2ON table1.field1 compopr table2.field1 ANDON table1.field2 compopr table2.field2) orON table1.field3 compopr table2.field3);也可以使用下列语法,嵌套 JOIN 语句:Select fieldsFROM table1 IN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 达州市卫生健康委员会2025年市本级医疗卫生辅助岗人员招募(20人)备考考试题库附答案解析
- 2025年青岛开放大学公开招聘高层次人才备考考试题库附答案解析
- 2025云南曲靖市宣威市阿都乡中心学校招聘编制外学龄前教育有关辅助人员33人考试参考题库及答案解析
- 烈士纪念日敬献花篮仪式观后感心得体会5篇
- 2025昆明市官渡区东站实验学校聘用制教师招聘(2人)备考考试题库附答案解析
- 2025黑龙江绥化市绥棱县招聘急需紧缺专业人员2人备考考试题库附答案解析
- 2025学年浙江绍兴市第一初级中学教育集团教师招聘(二)备考考试题库附答案解析
- 2026江苏南京航空航天大学专职辅导员招聘35人考试参考题库及答案解析
- 农产品跨境贸易合作合同
- 古汉语常识小课堂:古词语与词义转换教案
- 边坡削坡施工方案
- 湘美版五年级上册美术全册教案
- 浙江省通用安装工程预算定额第八册
- 乡村振兴战略实施与美丽乡村建设课件
- 视听语言PPT完整版全套教学课件
- 医学信息检索与利用智慧树知到答案章节测试2023年杭州医学院
- MT/T 548-1996单体液压支柱使用规范
- GB/T 17608-2006煤炭产品品种和等级划分
- 实验室常规玻璃仪器的操作及注意事项课件
- 沪教五年级数学上册第一单元测试卷
- 地下停车库设计统一规定
评论
0/150
提交评论