本文主要介紹MSSQL數(shù)據(jù)庫(kù)跨表和跨數(shù)據(jù)庫(kù)查詢(xún)的方法,我們假設(shè)有數(shù)據(jù)庫(kù)test1和數(shù)據(jù)庫(kù)test2。其中test1中有表 table1、table2;test2 中有表 table1。三個(gè)表的字段都為為:id、xingming、shijian、shuliang。接下來(lái)我們就以上面的條件為例來(lái)介紹跨數(shù)據(jù)庫(kù)查詢(xún)和跨表查詢(xún)的方法。
一、跨數(shù)據(jù)庫(kù)
(1)原始:
- SELECT *
-
- FROM OPENROWSET('sqloledb',
-
- 'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',
-
- test1.dbo.table1) where xingming='a'
-
- UNION all
-
- SELECT *
-
- FROM OPENROWSET('sqloledb',
-
- 'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',
-
- test2.dbo.table1) where xingming='a'
(2)簡(jiǎn)化:
- SELECT * FROM test1.dbo.table1 where xingming='a'
-
- UNION all
-
- SELECT * FROM test2.dbo.table1 where xingming='a'
注意事項(xiàng):dbo 一定要有,不可以沒(méi)有。
二、跨表
跨表查詢(xún)我們?cè)跀?shù)據(jù)庫(kù)test1內(nèi)實(shí)現(xiàn),執(zhí)行以下的代碼:
- SELECT * FROM table1 where xingming='a'
-
- UNION all
-
- SELECT * FROM table2 where xingming='a'
這就是UNION ALL 的作用。
如果上面沒(méi)有看懂,先建好上面的數(shù)據(jù)庫(kù)和表,下面有個(gè)asp實(shí)例,照抄就可以了。
文件名:unionall.asp
- <html>
-
- <head>
-
- <meta http-equiv="Content-Language" content="zh-cn">
-
- </head>
-
- <body>
-
- <%sqlStr="provider=sqloledb;data source=127.0.0.1;uid=sa;pwd=;database=test1" '跨庫(kù)時(shí),數(shù)據(jù)庫(kù)名不必指定,如:database=
-
- set conn=server.createObject("adodb.connection")
-
- conn.open sqlStr
-
- set rs=server.createObject("adodb.Recordset")
-
- sql=" SELECT * "
-
- sqlsql=sql&" FROM test1.dbo.table1 where xingming='a' "
-
- sqlsql=sql&" UNION all "
-
- sqlsql=sql&" SELECT * "
-
- sqlsql=sql&" FROM test2.dbo.table1 where xingming='a'"
-
- rs.open sql,conn,1%>
-
- <div align="center">
-
- <table border="1" style="border-collapse: collapse" width="388" bordercolor="#0000FF" id="table1">
-
- <tr>
-
- <td height="28" bgcolor="#CCCCCC" align="center"><b>id</b></td>
-
- <td width="135" height="28" bgcolor="#CCCCCC" align="center"><b>xingming</b></td>
-
- <td width="109" height="28" bgcolor="#CCCCCC" align="center"><b>shijian</b></td>
-
- <td width="89" height="28" bgcolor="#CCCCCC" align="center"><b>shuliang</b></td>
-
- </tr><%if not rs.eof then
-
- do while not rs.eof%>
-
- <tr>
-
- <td height="28" align="center"><%=rs("id")%></td>
-
- <td width="135" height="28" align="center"><%=rs("xingming")%></td>
-
- <td width="109" height="28" align="center"><%=rs("shijian")%></td>
-
- <td width="89" height="28" align="center"><%=rs("shuliang")%></td>
-
- </tr><%rs.movenext
-
- loop
-
- end if
-
- rs.close
-
- set rs=nothing
-
- conn.close
-
- set conn=nothing%>
-
- </table>
-
- </div>
-
- </body>
-
- </html>
關(guān)于MSSQL數(shù)據(jù)庫(kù)跨數(shù)據(jù)庫(kù)查詢(xún)和跨表查詢(xún)的方法就介紹到這里,如果您有更好的方法,歡迎您與我們分享,謝謝! 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|