我有一个查询没有"到期日期少于今天"我试图通过给出代码,数据库结构和预期结果的例子来尽可能地解释
$query="UPDATE users c
LEFT JOIN (
SELECT user_id, SUM(edexpf) as total
FROM user_pages
GROUP BY user_id
) x ON c.id = x.user_id
SET c.edexpn = COALESCE(x.total,0);
";
以下是我使用db结构的示例结果
用户:
id edexpn
========== ===========
1 0
2 4
user_pages:
expiry user_id edexpf type
========== =========== ========== ==========
2015-11-15 07:17:34 2 1 Static
2016-12-15 17:00:01 2 1 Dynamic
2016-12-15 17:00:01 2 1 New
2016-12-15 17:00:01 2 1 Dynamic
现在我期待这样的结果
用户:
id edexpn
========== ===========
2 2
因为来自 user_pages:的页面之一,其中 user_id = 2 有1 通过日期页面和2个即将到期的到期日期页面并且类型不像静态,所以,最后我不想获得过期日期页面的总和,如果类型像静态和像新的那样
我认为我们可以添加类似的东西
// Where CURDATE() < DATE(expiry)
AND type NOT LIKE '%Static%'
AND type NOT LIKE '%New%'
但不确定如何