最簡單的假設一下:
表“書”,2個欄位(書的編號,書的名稱),
表“頁”,n個欄位(書的編號,頁碼,內容)。
這2個表是1對多的關系,1本書有很多頁。而我想做個1對1的查詢,回傳的欄位是:書的編號,書的名稱,頁碼,內容。
用于獲取每本書最后一頁(頁碼最大的那一頁)的內容。怎么把這個頁碼最大表達出來,請幫我寫個查詢的例子,謝謝。
uj5u.com熱心網友回復:
Select A.書的編號, A.書的名稱, A.頁碼, [頁].內容From (
select [書].書的編號,MAX([書].書的名稱) as 書的名稱,Max([頁].頁碼) as 最大頁碼 form [書] inner join [頁] on [書].書的編號 = [頁].書的編號
Group by [書].書的編號
) A
inner join [頁] on [頁].書的編號 = A.書的編號 AND [頁].頁碼 = A.最大頁碼
uj5u.com熱心網友回復:
select * from (
select a.*,b.頁碼,b.內容,row_number() over(partition by a.書的編號 order by b.頁碼 desc) as rid from 書 a
left join 頁 b on a.書的編號=b.書的編號
) a
where rid=1
直接分組按頁碼排序,倒序頁碼最大的排第一個,取所有數排序為1的就可以
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/285314.html
標籤:應用實例
上一篇:Navicat激活碼過期解決方法(簡單粗暴)【轉載】
下一篇:資料庫表遷移另一臺服務器