Sql 使用select Postgres插入值

Sql 使用select Postgres插入值,sql,postgresql,join,select,sql-insert,Sql,Postgresql,Join,Select,Sql Insert,我需要做一个插入,但是在我需要比较这些值之前​​与其他表一起插入,以便我也可以插入值​​在其他表中,在我要插入的当前表中: 我不知道如何编写插入语法 Insert into TABLE_3 (code, value, description) values 123, 20000, teste 考虑插入。。。选择…语法。这种方法很方便 insert into table_3(code, value, desription, subscription, value_percent, total_

我需要做一个插入,但是在我需要比较这些值之前​​与其他表一起插入,以便我也可以插入值​​在其他表中,在我要插入的当前表中:

我不知道如何编写插入语法

Insert into TABLE_3 (code, value, description)
values 123, 20000, teste

考虑
插入。。。选择…
语法。这种方法很方便

insert into table_3(code, value, desription, subscription, value_percent, total_value)
select
    v.code,
    v.value,
    v.description,
    t1.subscription,
    t2.value_percent,
    v.value * t2.value_percent / 100.0 total_value
from (values (123, 20000, 'teste')) v(code, value, description)
inner join table_1 t1 on t1.code = v.code
inner join table_2 t2 on t2.subscription = t1.subscription

考虑
插入。。。选择…
语法。这种方法很方便

insert into table_3(code, value, desription, subscription, value_percent, total_value)
select
    v.code,
    v.value,
    v.description,
    t1.subscription,
    t2.value_percent,
    v.value * t2.value_percent / 100.0 total_value
from (values (123, 20000, 'teste')) v(code, value, description)
inner join table_1 t1 on t1.code = v.code
inner join table_2 t2 on t2.subscription = t1.subscription

我仍然需要做最后一个测试来运行最后一个内部连接,只有在有t1.code的情况下,如果没有,那么就不需要运行它。t1.code不是空的。你能帮我吗?@rbrt:查询就是这样做的。如果
t1.code
上没有匹配项,则不会插入该行。我需要在缺少的列上返回null。可以为null的列是t1.subscription。这是可能的?@rbrt:好的,那么你想要
左连接
s而不是
内连接
s。首先将最后一个
内部联接
更改为
左联接
,查看它是否符合您的要求。如果这还不够,那么两个都改变。我仍然需要做最后一个测试来运行最后一个内部连接,只有在有t1.code的情况下,如果没有,那么您就不需要运行它。t1.code不是空的。你能帮我吗?@rbrt:查询就是这样做的。如果
t1.code
上没有匹配项,则不会插入该行。我需要在缺少的列上返回null。可以为null的列是t1.subscription。这是可能的?@rbrt:好的,那么你想要
左连接
s而不是
内连接
s。首先将最后一个
内部联接
更改为
左联接
,查看它是否符合您的要求。如果这还不够,那就把两者都改变。