在创建表时从另一个表sql中选择一列

时间:2016-10-03 14:27:04

标签: sql create-table

在创建具有新列的表后,是否有办法在单个SQL语句中只选择其他表中的一列而不再使用Alter

如下所示,但仅用于理解

create table compliance_rules_filter_groups 
(   group_id int,
    group_name varchar(50),
    rule_id int (select rule_id from compliance_rules),
    m_group_filter_logical_condition varchar(10)
    )

1 个答案:

答案 0 :(得分:1)

您正在创建表列rule_id as int not,在此语句中插入数据。在您要将数据插入compliance_rules_filter_groups表时,可以使用compliance_rules表中的rule_id。

插入时您可以执行以下操作,或者可以使用INNER JOIN取决于您的表结构。但毕竟主要的是,你不能用CREATE语句插入数据。

INSERT INTO compliance_rules_filter_groups(group_id, group_name, rule_id, m_group_filter_logical_condition)
SELECT 1, '', (select rule_id from compliance_rules), ''