我有表requests
+------+----------+
| id | distance |
+------+----------+
| 1 | 1.5km |
| 2 | 1.3km |
+------+----------+
和与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 |
+------+------------+--------------------+-------+
表格点可以包含多个与 ONE 请求相关的行,并包含自己的点位置地址。例如,请求可以具有出发地,目的地及其中间“通过”点(位置)
我的问题是:我希望尽可能简单地 SQL 选择 REQUEST 及其所有位置,这些位置在表points
中
请,我不需要这种存储信息的策略,如果有人知道如何做,请帮助我。
我会提供更多信息。有出租车服务。例如,客户被命令从A点到D点到B点并通过C点。我必须保存用户按订单形式放置的所有点。我有订单表,我有包含所有地理位置数据的点表,POINT表中的任何行都可以对应一个订单。我的意思是一个订单可以包含2个或更多点。我的问题是如何获得包含数组或json或任何类型数据的所有点的所有订单
每个请求都可以有无限的点行,但这些行包含request_id。所以,一个请求可以包含例如10个点,我想通过选择所有请求来获取它们。最后我想得到这些数据: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'}]
]
}`
答案 0 :(得分:1)
使用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排序。