如何根据不同的表在表中插入行?

koaltpgm  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(294)

我有两张table。1 user 包含用户id、用户电子邮件、用户名称的表
以及其他 user_status 包含用户电子邮件、状态的表。
我面临的问题是 user_status 表是新添加的,为空。这个 user 表已在生产中。我想实现一个场景,在这个场景中我可以在 status 不清洁db的table。
如果 user_name 是空的,那么 statususer_status 这张table应该是 offline 否则 online .

user_id    user_email    user_name   
1          xyz@gmail.com   xyz       
2          abc@gmail.com

如果这是我的 user table和我的 user_status 表为空,则我要更新 user_status 表格格式:

user_email         status    
xyz@gmail.com      active    
abc@gmail.com      inactive
9nvpjoqh

9nvpjoqh1#

使用 insert ...select 以及条件表达式:

insert into user_status(user_email, status)
select user_email, case when user_name is null then 'offline' else 'online' end
from users

这假设“空”是指 null . 如果真的是空字符串,那么 case 应该是 where user_name = '' 相反。
请注意 user 是几乎所有数据库中的语言关键字,因此不是一个很好的列名选择。我把它改名为 users 在查询中。

相关问题