在MySQL中同時(shí)查找兩張表中的數(shù)據(jù)的示例
這個(gè)例子里面我們從兩個(gè)表中取出頭兩行,然后合并到一個(gè)表中。
在現(xiàn)實(shí)中我們常常會(huì)遇到這樣的情況,在一個(gè)數(shù)據(jù)庫(kù)中存在兩個(gè)表,假設(shè)表1儲(chǔ)存著公司個(gè)產(chǎn)品本季度銷售信息,表2儲(chǔ)存著公司本季度欠款金額情況。在一個(gè)頁(yè)面中我們想把這兩個(gè)信息顯示出來(lái)。通常的做法是在程序中進(jìn)行兩次SQL查詢,返回兩個(gè)結(jié)果集,在分別顯示出來(lái),非常麻煩。
下面是實(shí)現(xiàn)這個(gè)功能的代碼:
CREATE PROCEDURE test AS SET NOCOUNT ON --指示存儲(chǔ)過(guò)程不返回查詢影響的行數(shù) DECLARE @col1c varchar(20),@col2c varchar(20), @index int SET @index = 1 CREATE TABLE #tmptbl --創(chuàng)建一個(gè)臨時(shí)表,用于儲(chǔ)存我們的結(jié)果 ( 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
說(shuō)明:
@@FETCH_STATUS,返回被fetch語(yǔ)句執(zhí)行的最后游標(biāo)狀態(tài)。
返回值:0-FETCH語(yǔ)句執(zhí)行成功
1-FETCH語(yǔ)句失敗,或此行不再結(jié)果集中。
2-被提取的行不存在。
相關(guān)文章
mysql導(dǎo)出查詢結(jié)果到csv的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇mysql導(dǎo)出查詢結(jié)果到csv的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法
這篇文章主要介紹了MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法,需要的朋友可以參考下2014-06-06
Mysql使用大全 從基礎(chǔ)到存儲(chǔ)過(guò)程
看到園子里總結(jié)的Mysql用法,我覺(jué)得沒(méi)有我的全面,我的從登錄到高級(jí)的存儲(chǔ)過(guò)程都涉及到,這部分是我平常不會(huì)或是出現(xiàn)問(wèn)題都會(huì)拿來(lái)看,不過(guò)現(xiàn)在就和我一起來(lái)使用命令模式學(xué)習(xí)一下數(shù)據(jù)庫(kù)最基本的吧2012-05-05
mysql啟動(dòng)時(shí)報(bào)錯(cuò):error while loading shared li
這篇文章主要給大家介紹了解決mysql啟動(dòng)時(shí)報(bào)錯(cuò):error while loading shared libraries: libncurses.so.5: cannot open shared object file的方法,需要的朋友可以參考下2023-08-08

