最初はDBにとっては簡単なはずですが、ここで本当に苦痛を感じています。理由はわかりません。
Applicationforms という名前の [Table1] と WFInstance という名前の [Table2] の 2 つのテーブルがあります。Table1 の FormSubmitDate を、FormSubmitDate が null であるテーブル 2 の startedDate 値で更新する必要があります。次のクエリを書きます
UPDATE ApplicationForm
SET FormSubmitDate = wfi.StartDate
FROM ApplicationForm app ,
WorkFlowInstances wfi
WHERE app.FormSubmitDate is null and wfi.applicationID = app.ID
クエリを実行すると、SQL はクエリをこれに再生成します。
UPDATE ApplicationForm
SET FormSubmitDate = wfi.StartDate
FROM ApplicationForm AS app INNER JOIN
WorkFlowInstances AS wfi ON app.ID = wfi.ApplicationID CROSS JOIN
ApplicationForm
WHERE (app.FormSubmitDate IS NULL)
join を使って別のステートメントを書いてみました ,,
UPDATE ApplicationForm
SET FormSubmitDate = wfi.StartDate
FROM ApplicationForm
JOIN WorkFlowInstances wfi ON ApplicationForm.ID = wfi.ApplicationID
WHERE FormSubmitDate is null
SQL は同じ新しい構文を生成します。
コードを実行すると、[すべてのレコード] formSubmitDate フィールドに 2 番目のテーブル startDate の最初の値が入力されます。table1にnull値を含むレコードが1つある場合でも
ここで何が欠けていますか!?