2016-03-08 76 views
1

我試圖從schemaOne中選擇所有記錄。 abc其中abcTIMESTAMPschemaTwo之前爲3周或更少。 xyzTIMESTAMP兩種模式的日期時間差

所以,如果:

schemaOneabcTIMESTAMP = 2016-03-08

和:

schemaTwoxyzTIMESTAMP = 2016-03-01

Then schemaOneabcTIMESTAMP應提取,但如果:

schemaTwoxyzTIMESTAMP = 2012-03-01

Then 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或代表查詢ASAB在它們之間傳遞參數,但我不是MySQL專家,所以我很困難。也許有一個更簡單的方法來做到這一點?

+0

你如何把這兩張表聯繫起來? – 1000111

+0

'abc'有'ID'和'xyz'有'abc_ID' – Hooli

+0

您只希望根據匹配的ID得到結果,對不對? – 1000111

回答

1

由於schemaOne.abc.IDschemaTwo.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);