我有一个有趣的益智SQL我一直没能解决,你希望一个有更多的SQL福不是我做的。我有两个表设置是这样的:插入缺少的行
tblFormElement
FrmElementID
Label
tblFormSubmissionElement
FrmID_fk
FrmElementID_fk
SubmitID_fk
SubmissionValue
如果我运行下面的SQL:
SELECT tblFormElement.Label, tblFormSubmissionElement.* FROM tblFormElement
JOIN tblFormSubmissionElement ON FrmElementID = FrmElementID_fk
WHERE FrmID_fk = 55
AND SubmitID_fk = 7062
我会得到一个结果集,看起来像这样:
Label | FrmID_fk | FrmElementID_fk | SubmitID_fk | SubmissionValue
Label1 | 55 | 1601 | 7062 | Foo1
Label2 | 55 | 1602 | 7062 | Foo2
Label3 | 55 | 1603 | 7062 | Foo3
Label4 | 55 | 1604 | 7062 | Foo4
Label5 | 55 | 1605 | 7062 | Foo5
现在,如果我将SubmitID_fk更改为低于7062的任何值,我会得到如下结果:
Label | FrmID_fk | FrmElementID_fk | SubmitID_fk | SubmissionValue
Label1 | 55 | 1601 | 5011 | Foo1
Label2 | 55 | 1602 | 5011 | Foo2
Label3 | 55 | 1603 | 5011 | Foo3
Label5 | 55 | 1605 | 5011 | Foo5
What I would like to do is execute an INSERT statement for every one of these result sets which lack that Label4 row. Or in other words, For each result set which does not contain a row with FrmElementID_fk equal to 1604, INSERT the row with the respective columns. Any thoughts on how to attack this problem?
为什么不使用FrmElementID_fk <> 1604作为条件? – 2009-08-09 07:08:23