发表于:2011-07-05 00:00:00来源:SOUAB.COM人气:3032
完整查询
<% iArea=request.Form("sArea") iCity=request.Form("sCity") iID=request.Form("sID") iDay=request.Form("sDay") set Rs=server.createobject("adodb.recordset") sql = "Select h.Area,h.Ciyt,h.ID,m.sID,m.HID,m.Day,m.Pic,m.Title From [Hotel] As h Inner Join [Meal] As m On h.ID=m.HID where h.Pass=1 And m.Pass=1 "&sql&"" if iArea<>"" then sql=sql & " and h.Area="&iArea&"" end if if iCity<>"" then sql=sql & " and h.City="&iCity&"" end if if iDay<>"" then sql=sql & " and m.Day='"&iDay&"'" end if Response.Write(""&sql&"") 'Response.End() Rs.open sql,conn,1,1 %>
其中Hotel中h.ID字段值必须与Meal中的m.HID字值相等的,这是连接两个表的条件
顺便介绍 Inner Join 及 Outer Join
Inner Join 应该是最常用的 Join 方式, 它只会传回符合 Join 规则的纪录
Select <要选择的字段> From <主要资料表> <Join 方式> <次要资料表> [On <Join 规则>]
Select <要查询的字段> From <Left 资料表> <Left | Right> [Outer] Join <Right 资料表> On <Join 规则>
语法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本质上, Outer Join 是 inclusive, 叫它做包容性吧! 不同于 Inner Join 的排他性, 因此在 Left Outer Join 的查询结果会包含所有 Left 资料表的资料, 颠倒过来讲, Right Outer Join 的查询就会包含所有 Right 资料表的资料