mysql - 如何为表中的每一行运行特定的 sql 查询?

标签 mysql sql phpmyadmin

所以我的数据库中有两个表,它们看起来都像这样:

通讯:(调用电话)

Timestamp            FromIDNumber ToIDNumber GeneralLocation 
2012-03-02 09:02:30  878          674        Grasslands 
2012-03-02 11:30:01  456          213        Tundra 
2012-03-02 07:02:12  789          654        Mountains 

运动:

Timestamp            IDNumber Type        X   Y  
2012-03-02 11:02:30  379      pedestrian  32  46
2012-03-01 12:32:41  654      pedestrian  54  56
2012-03-02 07:02:16  789      pedestrian  39  52 

我想做的是找到最接近给定通信时间戳的移动时间戳。基本上,我想找到一个人在打电话时可能去的地方。

目前,我是这样做的:

SELECT 
      movement.timestamp,
      movement.x,
      movement.y 
 FROM movement
WHERE (movement.IDNumber=789 AND movement.timestamp>='2012-03-02 07:02:12')
ORDER BY movement.timestamp LIMIT 1;

输出为:

timestamp            x   y 
2012-03-02 07:02:12  39  52

我将 IDNumbertimestamp 设置为调用方的 FromIDNumber,而 timestamp 他们制作了称呼。因此,这将找到一位来电者的可能位置。

在这种情况下,78907:02:12 调用电话,并且在 07:02:16 有他的移动数据> 表示他的位置在 (39,52)。所以这将显示为他的可能位置,因为它只在 4 秒后出现。

但我如何为通信表中的每个调用运行该特定查询,而不必手动填写每个调用?

例如,不是只为 1 个调用计算位置,而是为通信表的所有行计算位置,如:

timestamp            x   y 
2012-03-02 07:02:12  39  52
2012-03-02 03:15:14  23  34
2012-03-02 05:06:07  34  55
2012-03-02 02:41:21  12  56
... 

等等。

我尝试将某些东西与 java.sql 一起使用,但事情变得有点复杂,我想知道是否有更简单的方法。我该如何解决这个问题?

问题是我刚开始学习 SQL,所以我完全不确定在这里做什么。我看了一些其他的 SO 帖子,但它们都是针对 sql-server 的,我真的无法理解。任何帮助将不胜感激谢谢!

最佳答案

试试这个:

SELECT c.FromIDNumber, m.Timestamp, m.X, m.Y
FROM Communication c
JOIN Movement m ON c.FromIDNumber = m.IDNumber
WHERE m.TimeStamp = (SELECT MIN(mm.Timestamp)
                     FROM Movement mm
                     WHERE mm.TimeStamp >= c.TimeStamp)

您可以使用 this SQL Fiddle使用不同的数据组合进行测试。

关于mysql - 如何为表中的每一行运行特定的 sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30408106/

相关文章:

mysql - 如何使用 ruby​​ 修改 .sql 文件?

mysql - 加载页面 localhost/phpmyadmin 时出错

php - PHP脚本中的增量值不起作用

mysql - 使用具有双向关系的 CRUD 存储库的 save() 方法时出现 CommunicationsException 和 StackOverflowError

java - 插入数据库时​​出现 NullPointerException

MySQL查询和关系表

sql - 使用别名的 ORDER BY 中的 Postgres CASE

mysql - 使用 Phpmyadmin 在 MySQL 中设计包含关系表的数据库

mysql - 将保存/更新调用 rails 转换为 sql

mysql - 多IF条件的查询优化,mysql查询中的ORDER BY