2015-10-20 65 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

非常感謝。我終於讓我的查詢以我想要的方式工作。 –