[英]SQL Best way to return data from one table along with mapped data from another table
我有以下問題。
我有一個表 Entries
包含2列:
EntryID
唯一標識符 Name
-某些名稱 我還有另一個EntriesMapping
表 ( 多對多映射表),其中包含2列:
EntryID
是指EntryID
中的Entries
表 PartID
是指PartID
在seprate Parts
表。 我需要寫一個SP將從返回的所有數據 Entries
表,但在每一行Entries
表我想提供所有的列表 PartID
是在注冊的EntriesMapping
表。
我的問題是,鑒於SP的結果將由應用定期處理,因此如何最好地解決此問題,因此性能非常重要。
1.我是否編寫了一個將為每個條目選擇多行的SP-如果給定條目注冊了多個PartID
,則我將返回多行,每行具有相同的EntryID
和Name
但具有不同的PartID
要么
2.我是否編寫了一個SP,它將在Entries
表中的每個條目中選擇1行 ,並具有一個字符串/ xml / json字段,其中包含所有不同的PartID
。
要么
3.我沒有想到其他解決方案嗎?
在我看來, 解決方案1是更好的方法,但是我將傳遞大量重復數據。
解決方案2不會傳遞額外的數據,但是string / json / xml將需要額外處理,從而導致每個項目的CPU時間更長。
PS:我覺得這是一個很普遍的問題,但是我找不到任何可以提供通用解決方案或不同方法利弊的資源。
我認為您需要簡單的JOIN
:
SELECT e.EntryId, e.Name, em.PartId
FROM Entries e
JOIN EntriesMapping em ON e.EntryId = em.EntryId
這將返回您想要的內容,不需要存儲過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.