簡體   English   中英

從一個表返回數據以及從另一個表映射數據的SQL最佳方法

[英]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 ,則我將返回多行,每行具有相同的EntryIDName但具有不同的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM