gpt4 book ai didi

mysql - 如何从基于其他 3 个表的表中选择数据?

转载 作者:行者123 更新时间:2023-11-29 00:05:36 25 4
gpt4 key购买 nike

以下是表格和相关字段:

shapes:        shape_id, shape_value
trips: shape_id, trip_id
stop_times: trip_id, stop_id
stops: stop_id, stop_value

现在的逻辑流程:

我想选择 shapes_shape.value 其中 shapes.shape_id = trips.shape_id

trips.shape_id 被选中,其中 trips.trip_id = stop_times.trip_id

stop_times.trip_id 被选中,其中 stop_times.stop_id = stops.stop_id

最后选择stops.stop_id,其中stop_value < 5

我该如何查询?

还值得一提:对于每个 stop_times.stop_id,可能有 20-50 行具有相同的 stop_times.trip_id(列中的其他参数不同)与trips.trip_idtrips.shape_id。如何修改数据库和表以使服务器更容易?如果有其他行具有相同的 2 列,我该如何删除这些行?

stop_times 表中的示例:

trip_id  arrival_time  departure_time  stop_id  stop_sequence
2147483647 05:26:30 05:26:30 8447 4
2147483647 05:36:30 05:36:30 8447 4
2147483647 05:46:30 05:46:30 8447 4
2147483647 05:56:30 05:56:30 8447 4
2147483647 06:06:30 06:06:30 8447 4

我是 SQL 语法的新手,无法理解连接表和通常复杂的选择查询的概念。

*重要的是要提到每个表包含 50,000-500,000 行,而现在我正在构建我的应用程序的基础并想让它正常工作我很乐意收到有关如何进一步改进查询的任何建议和只是供我在开发后期研究的概念(虽然您可以在此处提供给我的查询很简单,而且可能没有那么优化)

最佳答案

简单地说,您必须使用JOIN 来连接具有适当列的表。检查以下查询:

试试这个:

SELECT s.shape_value
FROM shapes s
INNER JOIN trips t ON s.shape_id = t.shape_id
INNER JOIN stop_times st ON t.trip_id = st.trip_id
INNER JOIN stops ss ON st.stop_id = ss.stop_id
WHERE ss.stop_value < 5;

关于mysql - 如何从基于其他 3 个表的表中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com