我正在尝试从schemaOne
中选择所有记录。abc
其中abc
。TIMESTAMP
在schemaTwo
之前为3周或更短时间。{{1 }}。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
来传递参数,但我不是MySQL专家,所以我我几乎被困在这里。也许有一种更简单的方法可以做到这一点?
答案 0 :(得分:1)
由于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);