我正在使用MySQL,我遇到以下情况:
Table nodes: node_id, lat, lng, name
Table links: node1, node2, name
因此,有两个表,在表节点中,它存储所有点及其各自的纬度和经度,并在表链接中,其中存储节点1引用节点,而node2也引用节点。
因为在MySQL和Rails中我们实际上没有2个外键指向同一个表(如果我错了就纠正我),例如,如果我想找到起始node_name和结束node_name,我将如何构建我的SQL语句?我试过了
SELECT nodes.name from Nodes, links WHERE nodes.node_id = node1
哪种工作但速度很慢(每个表中的记录少于10k),如果我想找到起始节点和结束节点的两个名称,我怎么能过去做呢?或者,如果我想用lat>限制起始节点x和结束节点lat<你找到所有的链接?
谢谢。
此致 安迪。
答案 0 :(得分:1)
你的查询也很好。尝试确保node_id上有适当的索引以帮助提高性能。
你可以运行2个查询,每个名称一个,或者如果你想让结果都在同一个查询中,你可以做两个子查询。