Mysql 查询出行计划表

Mysql 查询出行计划表,mysql,Mysql,我在括号中有三个表和属性: 路由id、路由名称 路线停止路线id,停止id 停止停止标识,停止名称 routestop中的route_id和stop_id是外键,分别引用route和stops中的主键。现在,给定一个stop_名称可以位于多个路由中,并且假设我从包含from stop_name字段和to stop_name字段的表单中进行查询,那么如何根据我查询的输入参数获得显示路由名称和站点名称的结果呢 谢谢 我会尝试重新措辞。我正在开发一个trip planner应用程序,其中我希望通勤者以

我在括号中有三个表和属性:

路由id、路由名称 路线停止路线id,停止id 停止停止标识,停止名称 routestop中的route_id和stop_id是外键,分别引用route和stops中的主键。现在,给定一个stop_名称可以位于多个路由中,并且假设我从包含from stop_name字段和to stop_name字段的表单中进行查询,那么如何根据我查询的输入参数获得显示路由名称和站点名称的结果呢

谢谢


我会尝试重新措辞。我正在开发一个trip planner应用程序,其中我希望通勤者以包含FROMorigin stop_名称和TOdestination stop_名称的表单输入两个参数,例如From New York city toBuffalo。根据我问题中的表格信息,我希望通勤者获得结果,假设有多条路线可以到达他/她的目的地。我希望这能有所帮助。

如果我理解正确,您正在查找的这种类型的查询称为集合中的集合

一种方法是在您的案例中按路由使用分组聚合,并检查条件以确保两个站点都在HAVING子句中的路由中

假设您在客户端代码中获得站点id,例如,起点站点id为1,终点站点id为3,并且如果您只对路线信息感兴趣,您的查询可能如下所示

选择r* 从路线\站rs加入路线r 在rs.route\u id=r.route\u id上 其中rs.stop_id为1,3 按rs.route_id分组 具有MAXrs.stop_id=1+ MAXrs.stop_id=3=2-每条路线都应该有两个stop_id 样本输出:

| ROUTE_ID | ROUTE_NAME | |----------|------------| | 1 | route1 | | 2 | route2 | | ROUTE_ID | ROUTE_NAME | STOPS | |----------|------------|-------------------| | 1 | route1 | stop5,stop3,stop1 | | 2 | route2 | stop1,stop3,stop2 | 样本输出:

| ROUTE_ID | ROUTE_NAME | |----------|------------| | 1 | route1 | | 2 | route2 | | ROUTE_ID | ROUTE_NAME | STOPS | |----------|------------|-------------------| | 1 | route1 | stop5,stop3,stop1 | | 2 | route2 | stop1,stop3,stop2 |
这是一个演示

我一点也不懂。问题是什么?你不认为用一些查询片段来更好地理解是更好的吗?它工作起来很有魅力!谢谢阿米莉安·彼得姆。您能给我推荐一本好的mysql书籍、教程或网站来提高我在这方面的技能吗?非常欢迎。例如比尔·卡温和马库斯·温南德