我正在使用MySQL,我遇到了以下情况:
Table nodes: node_id, lat, lng, name
Table links: node1, node2, name
所以有两个表,在表节点中,它存储所有点及其各自的纬度和经度,在表链接中,存储引用节点的node1和引用节点的node2
。由于在 MySQL 和 Rails 中,我们不能真正有 2 个外键指向同一个表(如果我错了,请纠正我),例如,如果我想找到起始node_name和结束node_name,我将如何构造我的 SQL 语句?我试过了
SELECT nodes.name from Nodes, links WHERE nodes.node_id = node1
哪种工作但非常慢(每个表中的记录少于 10k),如果我想找到起始节点和结束节点的名称,我该怎么做呢?或者,如果我想用纬度限制> x 的起始节点和纬度
谢谢。
问候安 迪。
是的,你可以这样做。 您的表结构看起来不错。
您的查询也很好。 尝试确保node_id上有适当的索引以提高性能。
您可以运行 2 个查询,每个查询对应一个名称,或者如果您希望结果都在同一查询中,则可以执行联合 R 两个子查询。