本篇文章給大家帶來的內容是關于sqlserver多表聯查和多表分頁查詢的方法(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
多表聯查:
select?p.*,s.Sheng?,?i.Shi from??[dbo].[ProductRecordInfo]???--表名? p?left?join?[ShengInfo]?s?on?p.ShengInfo?=?s.ShengId???--使用left?join左連接?讓兩個表中的指定字段產生連接關系 left?join?[ShiInfo]?i?on?p.ShiInfo?=?i.ShiId??????????--使用left?join左連接?讓三個表中的指定字段產生連接關系
這里的 on 就類似于where,后面的條件可以自己寫(推薦課程:MySQL教程)
運行結果如下:
分頁Sql語句:
使用row_number()函數進行編號
select?*?from?(select?ROW_NUMBER()?over?(order?by?Id?ASC)?as?IDD?,*from?ProductRecordInfo)?a?where?a.IDD>=1?and?a.IDD<p>先按Id進行排序,排序完后,給每條數據進行編號。</p><p>在這個語句中ROW_NUMBER()函數將針對SELECT語句返回的每一行,從1開始編號,賦予其連續的編號。在查詢時應用了一個排序標準后,只有通過編號才能夠保證其順序是一致的,當使用ROW_NUMBER函數時,也需要專門一列用于預先排序以便于進行編號</p><p><strong>運行結果如下:</strong></p><p><span style="font-size: 18px"><img src="https://img.php.cn/upload/article/000/000/009/c33545517fa69f7a44b85bf48c7a9f6a-1.png" alt=""></span></p><p>?最后如果想用ADO 做顯示分頁功能的話,就需要把多表聯查跟分頁結合起來,拼接語句如下:</p><pre class="brush:sql;toolbar:false">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
?結果如下:
注意事項:我們在進行數據庫多表聯查中必定會用到這些sql關鍵字,如果不弄清楚他們的區別,那就寫不出來我們項目需要的查詢條件。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END