我有2个独立的表格(链接和部分)。链接表中的信息有点像这样,
Links Table
----------------------------------------------------------------------------
| id | Description | startLat | startLng | endLat | endLng |
----------------------------------------------------------------------------
| 1000259 | Link Number 1 |52.891372 |-1.768254 |52.892545 |-1.775278 |
| 1000359 | Link Number 2 |52.894892 |-1.780513 |52.894306 |-1.774793 |
| 1000279 | Link Number 3 |52.894306 |-1.774793 |52.895000 |-1.765273 |
| 1000258 | Link Number 4 |52.895000 |-1.765273 |52.895500 |-1.755278 |
| 1000255 | Link Number 5 |52.895500 |-1.755278 |52.896500 |-1.745278 |
| 1000555 | Link Number 6 |52.896500 |-1.745278 |52.897250 |-1.735278 |
----------------------------------------------------------------------------
Sections表就像这样,
Sections Table
-----------------------------------------------------------------------------
| id | Description | fromLat | fromLng | toLat | toLng |
-----------------------------------------------------------------------------
| 625 | Section 1 | 52.893598 | -1.775120 | 52.885053|-1.756409 |
| 713 | Section 2 | 52.897273 | -1.788324 | 52.898285|-1.724721 |
| ... | ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... | ... |
-----------------------------------------------------------------------------
我想运行一个查询,它给出了一个部分涵盖的所有链接。因此,如果我说第2节中有多少链接,我应该收到lat / lng部分信息所涵盖的所有链接。
P.S。请注意,章节比链接长...任何帮助!
答案 0 :(得分:2)
你用join
做到这一点,只是条件是不等式而不是等式。目前还不清楚您是想要部分覆盖还是全覆盖。以下是部分报道的示例:
select s.*, l.*
from sections s join
links l
on (l.startlat < s.tolat and l.endlast > s.fromlat) and
(l.startlong < s.tolong and l.endlong > s.fromlong);