在MYSQL WHERE子句中使用来自不同表的两个值的总和

时间:2016-12-14 10:17:31

标签: mysql

我知道有类似的问题,但我已经苦苦挣扎了近两天,无法解决问题的解决方案。

我有两张桌子,为清楚起见,我们说它们有以下结构:

viewForSupplementaryElementOfKind

即使从// operation is done, refreshing the content.. self.stopActivityIndicatorView() self.collectionView.reloadData() ... 添加了extra_days,我也需要从table1: id, timestamp 1, 1481631111 2, 1481632222 3, 1481633333 table2: id, extra_days 2, 2 3, 1 中选择table1尚未通过timestamp的最新条目。换句话说,如果CURRENT_TIMESTAMP大于table2,则排除行。

我的最新尝试看起来像这样,但timestamp + extra_days * 68400子句似乎被忽略了:

NOW

2 个答案:

答案 0 :(得分:0)

根据您使用的SQL-DB软件,查看其日期算术功能。它们可以提供方便的功能,就像mariadb为日期做的: MariaDB ADDDATE Function

答案 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;