我有表格来保存关于湖泊、县和州的信息。我还有一张叫做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>)

07-24 19:26