gpt4 book ai didi

sql - COALESCE 如果表中不存在任何行

转载 作者:行者123 更新时间:2023-11-29 12:40:49 27 4
gpt4 key购买 nike

我有这两张表:

users(这有一个 updated_at 列)和 user_updates(这有一个用户的外键 user_id 和一个 created_at 列)

我想为用户找到最新的用户更新,所以我有这个:

SELECT  user_id, 
MAX(COALESCE(user_updates.created_at,users.updated_at)) as last_update
FROM user_updates
INNER JOIN users
ON users.id = user_updates.user_id
WHERE user_id IN (<user_id>)
GROUP BY user_id
;

只要存在 user_iduser_updates 就有效。但是,如果没有 user_updates,我想返回 users.updated_at。如何更改此查询?

我该如何解决这个问题?

最佳答案

似乎你需要 left join :

SELECT u.id, 
MAX(COALESCE(up.created_at, u.updated_at)) as last_update
FROM users u LEFT JOIN
user_updates up
ON u.id = up.user_id
WHERE u.id IN (<user_id>)
GROUP BY u.id;

关于sql - COALESCE 如果表中不存在任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com