我正在尝试从 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
然后 schemaOne
。abc
。TIMESTAMP
不应被提取。
我的尝试:
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
A
和 B
才能通过它们之间的参数,但我不是 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/