MSSQL数据库 跨表 和 跨数据库 查询方法

原创 2011年01月25日 11:06:00

 MSSQL数据库 跨表 和 跨数据库 查询方法

http://blog.csdn.net/highwell1/archive/2009/04/22/4099940.aspx

 

条件:有数据库 test1、数据库 test2。test1中有表 table1、table2;test2 中有表 table1。三个表的字段为:id、xingming、shijian、shuliang。

一、跨数据库:
    (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)简化:
SELECT * FROM test1.dbo.table1  where xingming='a'
  UNION   all  
SELECT * FROM test2.dbo.table1  where xingming='a'

注意事项:dbo 一定要有,不可以没有

二、跨表:(在数据库test1内)
SELECT * FROM table1  where xingming='a'
  UNION   all  
SELECT * FROM table2  where xingming='a'

这是 UNION ALL 的作用。

如果上面没有看懂,先建好上面的数据库和表,下面有个asp实例,照抄就可以了。

文件名: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"    '跨库时,数据库名不必指定,如:database=
set conn=server.createObject("adodb.connection")
conn.open sqlStr
set rs=server.createObject("adodb.Recordset")
sql="   SELECT * "
sql=sql&" FROM test1.dbo.table1  where xingming='a' "
sql=sql&" UNION all "
sql=sql&" SELECT * "
sql=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>

再看不懂,买块豆腐自杀撞死。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/highwell1/archive/2009/04/22/4099940.aspx

相关文章推荐

(JDBC)利用Java反射编写一个万能的数据库表查询方法

在用JDBC的过程中,我们可能会根据实际需求来编写N个查询方法(特别是新手),这样虽然简单,但是会产生大量的重复代码。且不容易维护。那么有没有办法,只编写一个方法呢? 通过分析,不难...

java连接数据库查询方法演示文稿

  • 2007年12月25日 02:24
  • 487KB
  • 下载

YII2-数据库yii\db\Query 查询方法

yii\db\Query 查询方法 A typical usage of the query builder looks like the following: $rows = (new \yii...
  • xmlife
  • xmlife
  • 2015年06月12日 14:56
  • 3443

Android 中数据库查询方法query()中的selectionArgs参数解析

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query中有大都(全部?)会有一个参数 selectionArgs,比如下面这个android.database....

【Java学习】使用泛型和反射 创建通用的数据库查询方法

开始接触数据库编程的时候可能会觉得,不同的数据库表的查询应该对应不同的查询方法,但是这样会非常耗时并且没有意义,这里可以通过反射和泛型来创建一个通用的数据库查询方法。当查询不同的表时,只需要改变查询方...

Thinkphp使用mongodb数据库实现多条件查询方法

这篇文章主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下 有个项目用了mongodb数据库,查询条件...

Java_jdbc 基础笔记之十一数据库连接 (通用的查询方法)

鉴于之前的查询方法,在这里我们可以写一个通用的方法/** * 鉴于 student、和customer查询的方法有好多相同之处,在此可以写一个通用的方法 */ public ...

Android 中数据库查询方法 query() 中的 selectionArgs 的用法

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.databas...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: MSSQL数据库 跨表 和 跨数据库 查询方法
举报原因:
原因补充:

(最多只允许输入30个字)