热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
访问本站赠送红包啦!凡在支付宝搜索数字口令 528131323 都将获得红包,天天搜索此口令天天得红包^_^
Health Sitology Family Finance Appliances Shopping Clothing Education Legal Rituals Beauty Property Travel Pet Medical Cyclopedia History Military Computers Sports Job Anecdote Geographic Mixed Entertain Literature Emotion Agriculture
JOIN连接组合两个表中的字段记录,包括三种: INNER JOIN运算式:连接组合两个表中的字段记录。

LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录。

RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录。
INNER JOIN设定两个表相关连的运算式,以连接组合两个表中的字段记录。INNER JOIN语法如下:FROM 表1 INNER JOIN 表2 ON 表1.字段1 比较运算子 表2.字段2 两个表连接的字段,譬如 [表1.字段1=表2.字段2],必须具有相同的字段类型,但是字段名称不需要相同。

例如,自动编号字段类型可以连接Long 的字段类型,但是单精整数字段类型不能连接双精整数的字段类型。比较运算子可为=、<、>、<=、>=、或<>。JOIN连接的字段,不可以包含MEMO字段类型或OLE对象类型,否则会发生错误。在一个JOIN表达式中,可以连结多个ON子句:SELECT fields
FROM 表1 INNER JOIN 表2
ON 表1.字段1 比较运算子 表2.字段1 AND
ON 表1.字段2 比较运算子 表2.字段2) OR
ON 表1.字段3 比较运算子 表2.字段3)JOIN表达式中,可以为巢状式:SELECT fields
FROM 表1 INNER JOIN
(表2 INNER JOIN [( ]表3
[INNER JOIN [( ] 表x [INNER JOIN ...)]
ON 表3.字段3 比较运算子 表x.字段x)]
ON 表2.字段2 比较运算子 表3.字段3)
ON 表1.字段1 比较运算子 表2.字段2 在一个INNER JOIN中,可以包括巢状式的LEFT JOIN或RIGHT JOIN,但是在一个LEFT JOIN或RIGHT JOIN中不能包括巢状式的INNER JOIN。让我们看一个于ASP程式当中使用这个SQL指令的例子。

可以利用Inner Join...On组合两个表中的记录,譬如ASP程式rs26.asp如下,[Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Inner Join 产品 On 产品.代号 = 销售.代号],使用Inner Join...On设定两个表相关连的运算式,组合两个表中的记录:<%Set conn1 = Server.CreateObject("ADODB.Connection")conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" Set rs3 = Server.CreateObject("ADODB.Recordset")sql = "Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Inner Join 产品 On 产品.代号 = 销售.代号" rs3.Open sql,conn1,1,1,1%><TABLE COLSPAN=8 CELLPADDING=5 BORDER=0><TR><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代号</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名称</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">价格</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">数量</FONT></TD></TR><% Do while not rs3.EOF %><TR><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD></TR> <% rs3.MoveNext Looprs3.Close%></TABLE> 以上的 ASP程式rs26.asp,在用户端使用浏览器,浏览执行的结果,显示组合两个表中的记录,由于销售表中并没有名称字段和价格字段,通过 [Inner Join 产品 On 产品.代号 = 销售.代号] 找到产品表的名称字段和价格字段之资料。上例使用Inner Join的语法:Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Inner Join 产品 On 产品.代号 = 销售.代号 结果与以下使用Where相同:Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售, 产品 Where 产品.代号 = 销售.代号LEFT JOIN/RIGHT JOININNER JOIN连接组合两个表中相关连的字段记录,为内部连接,您还可以使用: 使用LEFT JOIN运算:来建立一个左边外部连接。LEFT JOIN除了取得两个表中相关连的字段记录,并将包含了LEFT JOIN左边表中的全部记录,不管在右边表中是否有相符的记录。


使用RIGHT JOIN运算:建立一个右边外部连接。RIGHT JOIN除了取得两个表中相关连的字段记录,并将包含了RIGHT JOIN右边表中的全部记录,不管在左边表中是否有相符的记录。
例如,[销售LEFT JOIN 产品] 可以选取所有的销售记录。[销售RIGHT JOIN 产品] 可以选取所有的产品记录。

譬如利用Left Join...On除了取得两个表中相关连的字段记录,并包含了LEFT JOIN左边表中的全部记录, ASP程式rs26.asp如下,[Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Left Join 产品 On 产品.代号 = 销售.代号],使用Left Join包含了LEFT JOIN左边销售表中的全部记录:<%Set conn1 = Server.CreateObject("ADODB.Connection")conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" 'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"Set rs3 = Server.CreateObject("ADODB.Recordset")sql = "Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Left Join 产品 On 产品.代号 = 销售.代号" rs3.Open sql,conn1,1,1,1%><TABLE COLSPAN=8 CELLPADDING=5 BORDER=0><TR><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代号</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名称</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">价格</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">数量</FONT></TD></TR><% Do while not rs3.EOF %><TR><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD><% rs3.MoveNext Looprs3.Close%></TABLE> 以上的ASP程式rs26.asp,在用户端使用浏览器,浏览执行的结果,显示包含了LEFT JOIN左边销售表中的全部记录,由于销售表中并没有名称字段和价格字段,代号4的销售记录,通过 [销售 Left Join 产品 On 产品.代号 = 销售.代号] 找到产品表的名称字段和价格字段之资料,其他的代号并没有找到名称字段和价格字段之资料。

利用 Right Join...On除了取得两个表中相关连的字段记录,并包含了RIGHT JOIN右边表中的全部记录,譬如ASP程式rs26.asp如下,[Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Right Join 产品 On 产品.代号 = 销售.代号],使用Right Join包含了RIGHT JOIN右边产品表中的全部记录:<%Set conn1 = Server.CreateObject("ADODB.Connection")conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;" Set rs3 = Server.CreateObject("ADODB.Recordset")sql = "Select 销售.代号, 产品.名称, 产品.价格, 销售.数量 from 销售 Right Join 产品 On 产品.代号 = 销售.代号" rs3.Open sql,conn1,1,1,1%><TABLE COLSPAN=8 CELLPADDING=5 BORDER=0><TR><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代号</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名称</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">价格</FONT></TD><TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">数量</FONT></TD></TR><% Do while not rs3.EOF %><TR><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD><% rs3.MoveNext Looprs3.Close%></TABLE> 以上的 ASP程式rs26.asp,在用户端使用浏览器,浏览执行的结果,显示包含了RIGHT JOIN右边产品表中的全部记录,由于产品表中并没有数量字段,代号4的产品记录,通过 [销售 Right Join 产品 On 产品.代号 = 销售.代号] 找到销售表的数量字段之资料,其他的代号并没有找到数量字段之资料。
在ADO使用SELECT语法五
Reply content :
Photo link :
HTML 注释 在客户端显示一个注释. JSP 语法<!-- comment [ <%= expression %> ] --> 例子 1<!-- This file displays the user login screen --> 在客户端的HTML源代码中产生和上面一样的数据: <!-- This fil…  Details
使用 if(); elseif(); else; endif; 这一系列复杂的语句无助于 PHP 3.0 解析器的效率。因此,语法改变为: 例子 C-5. 移植:旧有 if..endif 语法if ($wfoo); echo "yep"; elseif ($wbar); echo "almos…  Details
1.基本结构CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT  将select查…  Details
这一章介绍关于Asp+的服务器端的控件 除了使用<%%>号以外,asp+ 的程序开发者目前可以使用新的标签来生成动态的页面了,新的服务器控可以在asp+ 文件中利用一个 特殊的tag runat=server来…  Details
1)函数的例子 php: function inc($wval) { return $wval + 1;} 过程也是个函数,只不过没有返回值。 jscript, TEXT-INDENT: 2em">/* 继承 */ class child extends parent { var property='new value'; } jscript or TEXT-IND…  Details
声明 在JSP程序中声明合法的变量和方法 JSP 语法<%! declaration; [ declaration; ]+ ... %> 例子<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %> 描述声明你将要在JSP程序中…  Details
接上一篇文章: ORDER BY ORDER BY子句,可以设定排序的字段。 在一个SQL表达式之中,ORDER BY子句通常放置于最后。 若要以递减顺序来进行排序(Z~A,9 ~0),须于您要递减排…  Details
隐藏注释 写在JSP程序中,但不是发给客户。 JSP 语法<%-- comment --%> 例子:<%@ page language="java" %> <html> <head><title>A Comment Test</title></head> <body> &…  Details
delete可以删除多笔记录,可以使用where设定条件运算式,符合条件的记录才 删除语法如下: delete [资料表.*] from 资料表 where 条件运算式 使用DROP陈述式从资料库中删除整个资料表,…  Details
包含一个符合JSP语法的表达式 JSP 语法<%= expression %> 例子<font color="blue"><%= map.size() %></font> <b><%= numguess.getHint() %></b>. 描述表达式元素表示的是一个在…  Details