mysql - 在不存在连接的情况下创建查询

标签 mysql sql select join

我有一个查询,如果有一个连接,平均创建和取消日期之间的差异。查询如下

select  avg(TIMESTAMPDIFF(DAY, users.created_at,subscriptions.canceled_at)) as total from users
join subscriptions on users.id = subscriptions.user_id

我想做的是,如果没有连接,则使用 NOW() 而不是 canceled_at,然后对两个 mysql 查询求平均值以获得平均天数。我该怎么做?

最佳答案

left join 应该可以解决问题:

SELECT   AVG(TIMESTAMPDIFF(DAY, 
                           users.created_at, 
                           COALESCE(subscriptions.canceled_at, NOW())) AS total
FROM      users
LEFT JOIN subscriptions ON users.id = subscriptions.user_id

关于mysql - 在不存在连接的情况下创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47562480/

相关文章:

mysql - 语义错误: Class Entity has no field or association named

mysql - 要创建哪些索引来加速繁重的筛选和分组查询?

php - 脚本的这一部分对于 sql 注入(inject)是安全的吗?

sql - 从所有表和所有具有指定列名的数据库中查找列名 SQL Server

javascript - 根据不同的选择框获取数组值

用于消息回复系统的 MySQL Advanced ORDER BY Clause

php - 获取id为0,10,20,30等的mysql记录

MySQL:如何按范围分组然后分组?

sql - 使用表的当前值更新语句

php - 从表中选择数据,其中 COUNT 列从最大到最小