【问题标题】:Complicated SQL select [closed]复杂的 SQL 选择 [关闭]
【发布时间】:2015-03-30 11:48:46
【问题描述】:

我有桌子requests

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

requests相关的表points

+------+------------+--------------------+-------+
| 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 points 可以包含与ONE 请求相关的多行,并包含自己的point 位置地址。例如,请求可以有出发地、目的地及其中间“通过”点(位置) 我的问题是:我想让 SQL 尽可能简单地选择 REQUEST 及其所有位置,这些位置在表 points 拜托,我并不需要这种存储信息的策略,如果有人知道如何做到这一点,请帮助我。

我会提供更多信息。有出租车服务。例如,客户要求从 A 点经过 B 点和 C 点从 A 点到 D 点。我必须保存用户在订单中输入的所有点。我有订单表,我有包含所有地理位置数据的点表,并且 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'}]
  ]
 }`

【问题讨论】:

标签: php mysql sql select join


【解决方案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;

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

【讨论】:

  • 我会提供更多信息。有出租车服务。例如,客户命令从 A 点到 D 点,通过 B 点和 C 点。我必须保存用户在订单中输入的所有点。我有订单表,我有包含所有地理位置数据的点表,并且 POINT 表中的任何行都可以对应一个订单。我的意思是一个订单可以包含 2 个或更多点。我的问题是如何在数组或 json 或任何类型的数据中获取所有订单。
  • @CJSuspend 编辑您的问题并包含其他信息(不要在 cmets 中发布此类更新)。包括您想要的输出和任何尝试的解决方案(如果有)
  • @CJSuspend 让我看看我是否理解...每个 request两个 point 行,您希望获得具有这两点的某种结果在一行中?
  • 每个请求可以有无限的点行,但这些行包含 request_id。因此,一个请求可以包含例如 10 个点,我想通过选择所有请求来获得它们。最后我想得到这个数据: json 示例:{['id': 1, 'distance': 1, [{'address': 'some address'}, {'address: 'second address'}, {'address ': '第三地址等'}] }
猜你喜欢
  • 2016-10-19
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 2013-09-27
  • 2013-01-03
相关资源
最近更新 更多