Heim >Datenbank >MySQL-Tutorial >在MySQL中同时查找两张表中的数据的示例_MySQL

在MySQL中同时查找两张表中的数据的示例_MySQL

WBOY
WBOYOriginal
2016-06-01 12:59:20872Durchsuche

这个例子里面我们从两个表中取出头两行,然后合并到一个表中。

  在现实中我们常常会遇到这样的情况,在一个数据库中存在两个表,假设表1储存着公司个产品本季度销售信息,表2储存着公司本季度欠款金额情况。在一个页面中我们想把这两个信息显示出来。通常的做法是在程序中进行两次SQL查询,返回两个结果集,在分别显示出来,非常麻烦。

  下面是实现这个功能的代码:

  

CREATE PROCEDURE test

  AS

   SET NOCOUNT ON --指示存储过程不返回查询影响的行数

   DECLARE @col1c varchar(20),@col2c varchar(20), @index int

   SET @index = 1

   CREATE TABLE #tmptbl --创建一个临时表,用于储存我们的结果

   (

    colID int IDENTITY(1,1) PRIMARY KEY CLUSTERED,

    col1 varchar(20),

   col2 varchar(20)

   )

   DECLARE cur1 CURSOR FOR SELECT TOP 2 customerid FROM orders

   DECLARE cur2 CURSOR FOR SELECT TOP 2 regiondescription FROM region

   OPEN cur1

   OPEN cur2

   FETCH cur2 INTO @col2c

   FETCH cur1 INTO @col1c

   WHILE @@FETCH_STATUS = 0

    BEGIN

    INSERT INTO #tmptbl (col1, col2) VALUES (@col1c, @col2c)

    FETCH NEXT FROM cur1 INTO @col1c

    FETCH NEXT FROM cur2 INTO @col2c

    END

   CLOSE cur1

   CLOSE cur2

   DEALLOCATE cur1

   DEALLOCATE cur2

   SELECT * FROM #tmptbl

   DROP TABLE #tmptbl

  GO

  说明:

  @@FETCH_STATUS,返回被fetch语句执行的最后游标状态。

  返回值:0-FETCH语句执行成功

      1-FETCH语句失败,或此行不再结果集中。

      2-被提取的行不存在。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn