复杂SQLselect

Complicated SQL select

我有tablerequests

+------+----------+
| id   | distance |
+------+----------+
|    1 | 1.5km    |
|    2 | 1.3km    |
+------+----------+

和 table pointsrequests

相关
+------+------------+--------------------+-------+
| id   | request_id | address            | order |
+------+------------+--------------------+-------+
|    1 |          1 | some_addrs         |     1 |
|    2 |          1 | second_addrs       |     2 |
|    3 |          2 | for_id_2_adddrs    |     2 |
|    4 |          2 | for_id_2_sec_addrs |     2 |
+------+------------+--------------------+-------+

table点可以包含若干行,这些行与ONE请求相关,并包含自己的点位置地址。例如请求可以有出发地、目的地及其中间"pass through"个点(位置) 我的问题是:我想尽可能简单地从 SQL 到 select REQUEST 及其所有位置,在 table points 拜托,我不需要这种存储信息的策略,如果有人知道该怎么做,请帮助我。

我会提供更多信息。提供出租车服务。例如,客户下令从 A 点经过 B 点和 C 点到达 D 点。我必须保存用户已下订单的所有点。我有 table 订单,我有 table 包含所有地理位置数据的点,POINT table 中的任何行都可以对应一个订单。我的意思是一个订单可以包含 2 个或更多点。我的问题是如何获得所有订单及其所有点数组或 json 或任何类型的数据

每个请求可以有无限点行,但这些行包含 request_id。因此,一个请求可以包含例如 10 个点,我想通过 selecting 所有请求来获得它们。最后我想得到这个数据:json 例子:

`{
  ['id': 1, 'distance': 1, 
     [{'address': 'some address'}, 
      {'address: 'second address'}, 
      {'address': 'third address and etc'}],
   'id': 2, 'distance': 4.1,
     [{'address': 'some address'},
      {'address: 'second address'},
      {'address': 'third address and etc'}]
  ]
 }`

使用 JOIN 关联表格:

select r.id as request_id, r.distance
     , p.id as point_id, r.address
from requests as r
     inner join ponts as p on r.id = p.request_id
order by r.id, p.id;

以上查询将为您提供来自 requestspoints 的所有数据,按请求 ID 和点 ID 排序。