我有以下问题。
我有一个表 Entries
,其中包含2列:
EntryID
-唯一标识符Name
-某个名字我有另一个EntriesMapping
表(多对多映射表),其中包含2列:
EntryID
引用了EntryID
表的Entries
PartID
引用了单独PartID
表中的Parts
。我需要编写一个 SP ,它将返回Entries
表中的所有数据,但是对于我想要的Entries
表中的每一行提供所有在PartID
表中注册的{strong> EntriesMapping
的列表。
我的问题是,鉴于 SP 的结果将由应用程序定期处理,因此性能非常重要。
1。
我是否编写了一个将选择每个条目多行的SP-如果给定条目注册了多个PartID
,则我将返回多行,每行具有相同的{ {1}}和EntryID
,但不同的Name
OR
2。
我是否编写了一个SP,它将在PartID
表中选择每个条目 1行,并且具有一个包含所有内容的 string / xml / json 字段不同的Entries
。
OR
3。还有其他我想不到的解决方案吗?
解决方案1 在我看来是更好的方法,但是我将传递大量重复数据。
解决方案2 不会传递额外的数据,但是 string / json / xml 将需要另外处理,从而导致每个项目的CPU时间更长。
PS:我觉得这是一个很普遍的问题,但是我找不到任何可以为不同方法提供通用解决方案或优点/缺点的资源。
答案 0 :(得分:0)
我认为您需要简单的JOIN
:
SELECT e.EntryId, e.Name, em.PartId
FROM Entries e
JOIN EntriesMapping em ON e.EntryId = em.EntryId
这将返回您想要的内容,不需要存储过程。