复杂SQLselect
Complicated SQL select
我有tablerequests
+------+----------+
| id | distance |
+------+----------+
| 1 | 1.5km |
| 2 | 1.3km |
+------+----------+
和 table points
与 requests
相关
+------+------------+--------------------+-------+
| 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;
以上查询将为您提供来自 requests
和 points
的所有数据,按请求 ID 和点 ID 排序。
我有tablerequests
+------+----------+
| id | distance |
+------+----------+
| 1 | 1.5km |
| 2 | 1.3km |
+------+----------+
和 table points
与 requests
+------+------------+--------------------+-------+
| 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;
以上查询将为您提供来自 requests
和 points
的所有数据,按请求 ID 和点 ID 排序。