- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在调查两个数据库表中两个不同条目的因果关系,但没有可以链接的通用 ID。
我唯一拥有的就是其中一个中的 unix 时间戳,以及另一个中的日期时间列。我很确定某个操作会触发另一个操作,但我需要仔细检查。
所以我尝试了这样的事情:
从请求中选择 *
RIGHT JOIN log_service on (log_service.date is BETWEEN FROM_UNIXTIME(1512312363) and FROM_UNIXTIME(1512312363+2))
例如,我在请求表中有行,timestamp_send 为 1512312363,并且在 log_service 表中有两个匹配行,其日期值如下:2017-12-03 16:46:022017-12-03 16:46:03(格林威治标准时间+2)
因此,我想右连接 log_service 表,将其与我正在查看的请求关联起来。
上面的查询尝试不起作用。它返回:
ELECT * FROM 请求
右连接 log_service on(log_service.date 介于 FROM_UNIXTIME(1512312363) 和 FROM_UNIXTIME(1512312363+2) 之间)
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 2 行“BETWEEN FROM_UNIXTIME(1512312363) 和 FROM_UNIXTIME(1512312363+2))”附近使用的正确语法
时间:0.189秒
显然,完成的查询中的硬编码数字将是左表中的 requests.timestamp_send
列。
有什么建议吗?
最佳答案
正如我在对该问题的评论中指出的,首先,删除 BETWEEN
之前的虚假 IS
关键字。 (IS
关键字用于比较 bool 表达式,它不是 BETWEEN
比较运算符的一部分。)
对于日期时间范围比较,我们通常使用两次比较的模式,仅一侧包含相等性。
foo >= start AND foo < end
有一些不错的文章介绍了其原因,以及 BETWEEN
引入的无意错误。但这可能不适合您的特定用例,您确实希望比较双方相等。我仍然推荐两次比较的模式,即使这意味着我们必须重复一个表达式。
foo >= start AND foo <= end
我还建议放弃 SELECT 列表中的 *
,并专门列出查询应该返回的表达式。这为 future 的读者提供了列的名称、列的数量以及更多关于哪些列实际上感兴趣的指示。
此外,我们似乎想要找到与“我正在查看的请求”关联的 log_service 行。这表明可能存在一些标准来识别我们感兴趣的请求
中的行。
它还表明我们希望从请求中返回行,以及来自 log_service 的任何匹配行...这表明外部连接将是相反的,LEFT
连接而不是RIGHT
连接。
下一个问题是确定“日期”和“unix 时间戳”比较中涉及的列的实际数据类型。如果没有这些信息,我们只是猜测... request
中的 timestamp_send
列是 INTEGER 类型,包含自纪元开始以来的 unix 样式秒数, log_service
中的 date
列是 DATETIME。
根据提供的规范,我们倾向于编写如下查询:
SELECT rq.timestamp_send AS rq_timestamp_send
, FROM_UNIXTIME(rq.timestamp_send) AS rq_datetime_send
, ls.date
, ls.foo
, ...
FROM requests rq
LEFT
JOIN log_service ls
ON ls.date >= FROM_UNIXTIME( rq.timestamp_send )
AND ls.date < FROM_UNIXTIME( rq.timestamp_send ) + INTERVAL 3 SECOND
WHERE rq.somecol = 'the request i am looking at'
关于mysql - 如何仅基于之间连接线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47666704/
我有如下所示的文本文件: 1. SometextSometextSometextSometextSometext 2. SometextSometextSometextSometextSometext
这一章实现的连接线,目前仅支持直线连接,为了能够不影响原有的其它功能,尝试了2、3个实现思路,最终实测这个实现方式目前来说最为合适了。 请大家动动小手,给我一个免费的 Star 吧~ 大家
假设我的流是 x*N 行长,其中 x 是记录数,N 是每条记录的列数,并且按列输出。例如,x=2,N=3: 1 2 Alice Bob London New York 我如何加入每一行,以记录数为模,
如何在下面的 jsfiddle 中用虚线连接数字。 我希望这些线从内圈的边界开始,无论是来自 jQuery 还是来自 css。我的意思是围绕内圈的边界从内边界边缘开始到数字 ....... 1, ..
我正在使用 C#,但将来我可能需要在其他语言上使用它。 很多游戏都有这样的谜题。有一组电线(有两种类型的电线:直的和弯的。),有一个地方是信号进来的地方,还有一个地方是信号必须离开的地方。但是电线的布
本章响应小伙伴的反馈,除了算法自动画连接线(仍需优化完善),实现了可以手动绘制直线、折线连接线功能。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Is
使用新版本的 Java 物质外观,不绘制典型 JTree 中的连接线(父子线)。 在 java.net 的官方论坛上有人问 same thing开发人员对此的回答是,这是基于较新的 UI 的选择,并且
我正在使用 matplotlib 绘制一些数据,这些数据需要一段时间,因此我必须使用 plot_date 来绘制我的线条。但出于某种原因,就连接线而言,Plot_Date 和 Plot 具有完全不同的
我是一名优秀的程序员,十分优秀!