2016-12-14 27 views
0

我知道也有類似的問題,但我一直在爲此掙扎近兩天,無法解決問題的解決方法。在MYSQL WHERE子句中使用來自不同表格的兩個值的總和

我有兩個表,爲了清楚可以說,他們已經結構如下:

table1: 
id, timestamp 
1, 1481631111 
2, 1481632222 
3, 1481633333 

table2: 
id, extra_days 
2, 2 
3, 1 

我需要從table1其中timestamp沒有從table2通過CURRENT_TIMESTAMP即使添加extra_days選擇最新的條目。換句話說,如果timestamp + extra_days * 68400大於NOW,排除行。

我的最新嘗試是這樣的,但WHERE條款似乎被忽略:

SELECT t1.id, t1.timestamp FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id WHERE t1.timestamp + (68400 * COALESCE(t2.extra_days,0)) < CURRENT_TIMESTAMP ORDER BY t1.timestamp DESC LIMIT 1 

回答

0

您比較的整數日期和時間(加入的秒數計算的Unix時間戳)。 ()

嘗試使用UNIX_TIMESTAMP()函數而不是CURRENT_TIMESTAMP

SELECT t1.id, t1.timestamp 
FROM table1 t1 
LEFT JOIN table2 t2 ON t1.id = t2.id 
WHERE t1.timestamp + (68400 * COALESCE(t2.extra_days,0)) < UNIX_TIMESTAMP() 
ORDER BY t1.timestamp DESC LIMIT 1; 
+0

Jeez,就是這樣!非常感謝! –

0

根據您使用,看看他們的日期運算功能的SQL-DB軟件。他們可能爲此提供方便的功能,如MariaDB的確實的日期: MariaDB ADDDATE Function

+0

謝謝,這是MYSQL,我編輯的標題。 –

相關問題