2015-10-20 61 views
-1

我有两个主表。汽车和特点。一辆汽车有许多功能,而且功能可以有很多汽车。因此,桥表位于它们之间,称为CARFEATURE。它有PKFKCarID和PKFKFeature ID。我想查询只有我分配的特定功能的汽车。我如何用SQL来做到这一点。在sql中处理多对多的关系

我试过了,SELECT * FROM CARFEATURE WHERE FEADTUREID ='GPS'和FEATUREID ='RADIO'。但我最终得到空结果。

回答

0

各种选项。我猜你想

select carID 
    from carFeature 
where featureID in ('GPS', 'Radio') 
group by carID 
having count(distinct featureID) = 2 

你也可以做

select carID 
    from carFeature 
where featureID = 'GPS' 
intersect 
select carID 
    from carFeature 
where featureID = 'Radio' 

后者查询在我看来更清楚一点,但它可能并不像第一次一样高效。

+0

非常感谢。我终于让我的查询以我想要的方式工作。 –