[英]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.