發表于:2011-07-05 00:00:00來源:SOUAB.COM人氣:2815
完整查詢
<% 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中的(de)m.HID字值相等的(de),這是連接兩個表的(de)條件
順便介紹 Inner Join 及 Outer Join
Inner Join 應該是最常用的(de) Join 方式, 它隻會傳回符合 Join 規則的(de)紀錄
Select <要選擇的(de)字段> From <主要資料表> <Join 方式> <次要資料表> [On <Join 規則>]
Select <要查詢的(de)字段> From <Left 資料表> <Left | Right> [Outer] Join <Right 資料表> On <Join 規則>
語法中的(de) Outer 是可(kě)以省略的(de), 例如(rú)你可(kě)以用 Left Join 或是 Right Join, 在本質上, Outer Join 是 inclusive, 叫它做(zuò)包容性吧(ba)! 不同于 Inner Join 的(de)排他性, 因此在 Left Outer Join 的(de)查詢結果會包含所有 Left 資料表的(de)資料, 颠倒過來講, Right Outer Join 的(de)查詢就會包含所有 Right 資料表的(de)資料