我有一个表[name] Application_Form_Controls_Management
,我想在其中插入19列的值,其中3列(App_Form_Name
,App_Form_Function_ID
&Right_ID
)我想在同一张表上添加一条select语句。
我要添加到这3列的值是:
select App_Form_Name,App_Form_Function_ID,Right_ID
from Application_Form_Controls_Management
where App_Form_Name IN (Select Application_Form_Name From FormNameGridNameTempTable)
group by App_Form_Name,App_Form_Function_ID,Right_ID
此select语句将返回值(以一对为例):
App_Form_Name | App_Form_Function_ID | Right_ID
formContactNewEdit | 1 | 0
formContactNewEdit | 1 | 1
formContactNewEdit | 2 | 1
PS:此问题不是this question的重复,因为他的问题是通过在要插入的每一列中写入一个select
来解决的,但是在我的情况下,这将返回错误的值,因为我要添加的列是“相关的”,因此,如果我执行相同的操作,则意味着我将得到与App_Form_Function_ID
列关联的Right_ID
&App_Form_Name
值错误,例如,我可能会看到此行添加到我的表中:
App_Form_Name | App_Function_ID | Right_ID
formContactNewEdit | 3 | 1
当App_Function_ID
的值3和Right_ID
的值1对于“ formContactNewEdit”错误时
更新,由于有人告诉我我的问题不清楚,因此我将尝试以另一种方式提出该问题:
我有一个表Application_Form_Controls_Management
,我想在其中应用一个insert into
语句。我的表有19列,其中3列中的值将插入select语句,其余手动(通过手动,我是指我将用手写的方式输入它们的值)。
通常会这样:
Insert Into Application_Form_Controls_Management (column1, App_Form_Name,App_Form_Function_ID,Right_ID,column5, _)
Values('manual value',select statement,select statement,select statement,'the rest are manual values')
但是,如果我那样做的话,我将得到错误的值(在P.S段落中进行了说明),因此似乎只需要一次选择就可以插入这3列,但是我不知道该怎么做。
答案 0 :(得分:1)
这行不通吗?
insert ...
select t1.App_Form_Name, t1.App_Form_Function_ID, t1.Right_ID
from
(
select distinct App_Form_Name,App_Form_Function_ID,Right_ID
from Application_Form_Controls_Management
where App_Form_Name IN (Select Application_Form_Name From FormNameGridNameTempTable)
) as t1
请注意,除了分组实际上并没有添加任何内容外,我没有其他原因使用DISTINCT而不是GROUP。
答案 1 :(得分:1)
不要使用VALUES,而要在其他列之间添加要插入的文字值的SELECT:
insert Into Application_Form_Controls_Management
(column1, App_Form_Name,App_Form_Function_ID,Right_ID,column5, _)
select 'manual value',App_Form_Name,App_Form_Function_ID,Right_ID,'the rest are manual values'
from Application_Form_Controls_Management
where App_Form_Name IN (Select Application_Form_Name From FormNameGridNameTempTable)
group by App_Form_Name,App_Form_Function_ID,Right_ID