sql - 从一个选择中插入 2 个不同的行

标签 sql postgresql

您好,我有这个查询返回存在于一个表中但不存在于另一个表中的客户列表。 对于每个返回的 customer_id,我需要在配置文件表中添加 2 行。

我将如何在 sql 中写入 2 行的插入?

select * FROM
(select * 
from customer c 
left outer join profile cp 
on cp.customer_id=c.global_id 
order by c.global_id) as A
where id is NULL;

谢谢!

最佳答案

一种选择是使用交叉连接创建笛卡尔积:

insert into profile (customerid ...)
select customerid ... 
FROM
   (select * 
   from customer c 
       left outer join profile cp 
           on cp.customer_id=c.global_id 
   ) as A cross join (SELECT 1 col UNION SELECT 2) as B
where id is NULL;

关于sql - 从一个选择中插入 2 个不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178781/

相关文章:

sql - 通过回滚停止查询是否保证回滚

sql - 查询以删除列中字符串的第一个和第二个连字符之间的所有内容

c# - 如果在 C# 中失败,则回滚 sql 事务

sql - 在 Postgresql 中删除子查询

postgresql - 无法连接到 postgres(用户密码验证失败 - docker)

java - 尝试使用 Java 在 sqlite 数据库中创建表时出现空指针异常

sql - 获取相关文章的高级方法(语义)

.net - 在 .NET 中使用 SSH 隧道连接到 postgresql

Postgresql 和 Vault。错误 : permission denied for relation example

sql - 绘制一个时间范围内在线人数的图表