【发布时间】:2018-11-18 18:59:08
【问题描述】:
我有一个 web 应用程序,它显示项目列表。
每个项目可以有一个或多个标签。
项目(ID,名称)
标签(ID,名称)
ItemTag(Id, ItemId, TagId)
如果只显示单个项目,则很容易获取项目,然后是标签并在 UI 中显示它们。
但是,当显示可能显示 100 个项目的项目网格时,我想避免必须执行 101 次访问数据库 - 一次获取项目列表,然后为每个集合往返一次数据库每个项目的标签。
我能想到的最好的方法是进行基本查询,然后使用结果构建第二个查询,使用 Id 返回一个长标签列表,然后我将其匹配到各个项目。
有没有更好的方法来做到这一点?例如,如果标签列表可以转换为 json 并在原始查询中作为字符串返回,那么在客户端我可以将其转换回对象并适当地显示它们。但是我不知道怎么写这样的查询。
【问题讨论】:
标签: sql sql-server sql-server-2016