【发布时间】:2010-09-15 00:55:11
【问题描述】:
我有一个常规的一对多模式,类似于这个简单的例子:
人
person_id (PK)
PERSON_TRAIT
person_id (FK)
trait_id (FK)
数量
特质
trait_id (PK)
名称
//其他属性
给定一组特征(“友好、有趣”),我将如何返回关联的 person_id 和数量记录集。
乍一看,我很想使用它,但它不是这么简单:
select person_id, quantity
from trait t
inner join person_trait pt on t.trait_id = pt.trait_id
where name in ('friendly', 'funny')
这是不正确的,因为我可以拥有一个包含这些特征以及更多特征(“友好、有趣、瘦”)的人,它会被退回。
更进一步,如果没有一个人准确地包含所有特征,我将如何聚合来自多个不同人的特征并返回这些 person_id 和数量值的记录集?
使用 SQL Server 2005。
【问题讨论】:
标签: sql sql-server-2005