表document跟documentsfolderitem是一對多的關係,即乙個document檔案可以放
多個document資料夾,那現在我想實現就是查詢出document記錄,但document不重複,sql的寫法如下:
select top 100 percent dbo.document.*
from dbo.document left outer join
dbo.documentsfolderitem on
dbo.document.docid = dbo.documentsfolderitem.docid and (folderid is null or
folderid in
(select max(folderid)
from dbo.documentsfolderitem where docid=document.docid
group by docid))
我還要實現乙個功能是,顯示folder的全路徑,
格式如下:parentfolder/childfolder
建立了乙個定義發函式,實現根據folderid返回所有上級路徑的資料夾名稱
create function getdocumentfolderpath(@folderid bigint)
returns nvarchar(1000)
asbegin
declare @s nvarchar(1000),@name nvarchar(20)
lab:
set @name =(select name from documentfolder where status <> -1 and folderid=@folderid)
select @folderid=parentid from documentfolder where status <> -1 and folderid=@folderid
if @name is not null
begin
set @s=@name+isnull('/'+@s,'')
goto lab
endreturn @s
end呼叫如下:
select dbo.getdocumentfolderpath(dbo.documentsfolderitem.folderid) as name from documentsfolderitem
一對多查詢
最終會將訂單資訊對映到 orders 中,訂單所對應的訂單明細對映到 orders 中的 orderdetail 屬性中。每個 orders 中的 orderdetail 屬性儲存了該訂單所對應的訂單明細。select orders.user.username user.user.birthday ...
一對多查詢
案例 查詢所有使用者資訊及使用者關聯的訂單資訊。使用者資訊和訂單資訊為一對多關係。sql語句 select u.id,u.username,u.birthday,u.u.address,o.id oid,o.number,o.createtime,o.note from user u left jo...
mybatis 一對多查詢
查詢訂單及訂單明細的資訊。這裡怎麼體現了一對多 這裡orders的id出現重複的記錄,無法對映到orders類中 collection 對關聯查詢到多條記錄對映到集合物件中 4 查詢訂單 關聯使用者 及訂單明細 public listfindordersandorderdetailresultmap...