這篇文章主要為大家詳細(xì)介紹了sqlserver多表聯(lián)合查詢和多表分頁(yè)查詢的方法,圖文詳解容易學(xué)習(xí),配合代碼閱讀理解效果更佳,非常適合初學(xué)者入門,感興趣的小伙伴們可以參考一下。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、浪卡子網(wǎng)站維護(hù)、網(wǎng)站推廣。
多表聯(lián)查:
select p.*,s.Sheng , i.Shi from [dbo].[ProductRecordInfo] --表名 p left join [ShengInfo] s on p.ShengInfo = s.ShengId --使用left join左連接 讓兩個(gè)表中的指定字段產(chǎn)生連接關(guān)系 left join [ShiInfo] i on p.ShiInfo = i.ShiId --使用left join左連接 讓三個(gè)表中的指定字段產(chǎn)生連接關(guān)系
這里的 on 就類似于where,后面的條件可以自己寫
運(yùn)行結(jié)果如下:
分頁(yè)Sql語(yǔ)句:
使用row_number()函數(shù)進(jìn)行編號(hào)
select * from (select ROW_NUMBER() over (order by Id ASC) as IDD ,*from ProductRecordInfo) a where a.IDD>=1 and a.IDD<=3
先按Id進(jìn)行排序,排序完后,給每條數(shù)據(jù)進(jìn)行編號(hào)。
在這個(gè)語(yǔ)句中ROW_NUMBER()函數(shù)將針對(duì)SELECT語(yǔ)句返回的每一行,從1開始編號(hào),賦予其連續(xù)的編號(hào)。在查詢時(shí)應(yīng)用了一個(gè)排序標(biāo)準(zhǔn)后,只有通過(guò)編號(hào)才能夠保證其順序是一致的,當(dāng)使用ROW_NUMBER函數(shù)時(shí),也需要專門一列用于預(yù)先排序以便于進(jìn)行編號(hào)
運(yùn)行結(jié)果如下:
最后如果想用ADO 做顯示分頁(yè)功能的話,就需要把多表聯(lián)查跟分頁(yè)結(jié)合起來(lái),拼接語(yǔ)句如下:
select * from( select *, ROW_NUMBER() OVER(order by Id asc) row from (select p.*,s.Sheng,i.Shi,a.PinPai from [dbo].[ProductRecordInfo] p left join [ShengInfo] s on p.ShengInfo = s.ShengId left join [ShiInfo] i on p.ShiInfo = i.ShiId left join[dbo].[PinPaiInfo] a on p.PinPaiInfo=a.Aid)t1)t2 where t2.Row between 1 and 3
結(jié)果如下:
注意事項(xiàng):我們?cè)谶M(jìn)行數(shù)據(jù)庫(kù)多表聯(lián)查中必定會(huì)用到這些sql關(guān)鍵字,如果不弄清楚他們的區(qū)別,那就寫不出來(lái)我們項(xiàng)目需要的查詢條件。
以上就是sqlserver多表聯(lián)合查詢和多表分頁(yè)查詢的詳細(xì)內(nèi)容,代碼示例簡(jiǎn)單明了,如果在日常工作遇到此問(wèn)題。通過(guò)這篇文章,希望你能有所收獲,更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!