查询以查找处于多个州的湖泊

时间:2016-11-16 21:03:56

标签: mysql database recursive-query

我有表格来保存有关湖泊,县和州的信息。我还有一个名为LakeLocation的表,它只是一对LakeID和CountyID的一对外键,所以我可以知道它们在哪里。每个县都有一个StateName。

这一切的高级视图是这样的:

Lake = {id,name,...}

County = {id, name, StateName ....}

State = {name, ...}

LakeLocation = {LakeID, CountyID}

我试图找出哪些州有不止一个州的湖泊。一个例子是太浩湖,它跨越四条县线和两条州线。我知道我需要一个递归查询,但我只理解那些简单的一个表子/父类型关系。不是这个。

如何设计满足我需求的查询?感谢

1 个答案:

答案 0 :(得分:2)

您只需group by即可知道湖泊是什么

  SELECT LakeID
  FROM LakeLocation 
  GROUP BY LakeID
  HAVING COUNT(CountyID) > 1

然后,如果你想要湖名

  SELECT *
  FROM Lake 
  WHERE LakeID IN (<previous query>)