mysql - 两个模式的日期时间差异

标签 mysql database datetime schema

我正在尝试从 schemaOne.abc 中选择所有记录,其中 abc.TIMESTAMP 是 3 周或小于 schemaTwo.xyz.TIMESTAMP

如果:

schemaOne.abc.TIMESTAMP = 2016-03-08

和:

schemaTwo.xyz.TIMESTAMP = 2016-03-01

那么 schemaOne.abc.TIMESTAMP 应该被获取,但是如果:

schemaTwo.xyz.TIMESTAMP = 2012-03-01

然后 schemaOneabcTIMESTAMP 不应被提取。

我的尝试:

SELECT ID FROM schemaOne.abc WHERE `TIMESTAMP` > (SELECT `TIMESTAMP` FROM schemaTwo.xyz) - INTERVAL 3 WEEK;

返回错误:

Error Code: 1242 Subquery returns more than 1 row

我怀疑我可能必须执行 UNION 或表示查询 AS AB 才能通过它们之间的参数,但我不是 MySQL 专家,所以我几乎被困在这里。也许有更简单的方法来做到这一点?

最佳答案

由于 schemaOne.abc.ID 是由 schemaTwo.xyz.abc_ID 引用的,因此以下查询可能是您所期望的。

SELECT 
schemaOne.abc.ID
FROM schemaOne.abc
INNER JOIN schemaTwo.xyz ON schemaOne.abc.ID = schemaTwo.xyz.abc_ID 
WHERE schemaOne.abc.`TIMESTAMP` > (schemaTwo.xyz.`TIMESTAMP` - INTERVAL 3 WEEK);

关于mysql - 两个模式的日期时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35866604/

相关文章:

mysql - UPDATE 查询 SUM 多项选择

php - 改善脚本执行时间

mysql - 如何更新和附加值到多对多 Sequelize 实现

java - 无法理解数十亿行上的 INSERT 更新计数

php - Joomla 中的日期转换为用户时区

mysql - SQL 查询、有效日期和连接 : how to make it work?

mysql - Node js-mysql插入查询中如何获取插入的行数据?

c# - 如何加密 SQLite 数据库文件 ".s3db"?

mysql - 日期编码问题

C#:DateTime.UtcNow 在分配给对象后更改为本地时间