我有表格来保存关于湖泊、县和州的信息。我还有一张叫做lakelocation的桌子,很简单,就是lakeid和countyid的一对外键,所以我可以知道它们在哪里。每个县都有一个州名。
对这一切的高层看法是这样的:Lake = {id,name,...}
County = {id, name, StateName ....}
State = {name, ...}
LakeLocation = {LakeID, CountyID}
我试图找出哪些州的湖泊位于一个以上的州。塔霍湖就是一个例子,它跨越了四条县线和两条州线。我知道我需要一个递归查询,但我只理解那些简单的单表子/父类型关系。不是这个。
如何设计一个满足我需要的查询?谢谢
最佳答案
你只需要一个group by
就可以知道湖是什么
SELECT LakeID
FROM LakeLocation
GROUP BY LakeID
HAVING COUNT(CountyID) > 1
如果你想知道湖的名字
SELECT *
FROM Lake
WHERE LakeID IN (<previous query>)