SELECT
a_fees a
a_temp b
SET
b.fee_source_id = a.fee_source,
b.filing_date = a.filingdate
WHERE
b.fee_id = a.fee_id;
3 に答える
1
複数のテーブルを更新するための MySQL 構文:
UPDATE a_fees AS a, a_temp AS b
SET a.fee_source = b.fee_source_id,
a.filingdate = b.filing_date
WHERE a.fee_id = b.fee_id;
オンラインで動作することを確認してください: sqlfiddle
の使用INNER JOIN
:
UPDATE a_fees AS a
INNER JOIN a_temp AS b
ON a.fee_id = b.fee_id
SET a.fee_source = b.fee_source_id,
a.filingdate = b.filing_date;
オンラインで動作することを確認してください: sqlfiddle
于 2012-12-22T00:30:20.037 に答える
0
データベース間で機能することがわかっている唯一の構文は次のとおりです。
update a_temp
set fee_source_id = (select a_fees.fee_source from a_fees f where a_temp.fee_id = af.fee_id),
filing_date = (select a_fees.filing_date from a_fees f where a_temp.fee_id = af.fee_id)
where a_temp.fee_id in (select fee_id from a_fees)
2 つの相関するサブクエリを使用する非常に醜い構文 (where
節は、fee_id が一致しないケースを処理するためのものです)。これが、ほとんどのデータベースがupdate
クエリでの結合をサポートするメカニズムを備えている理由です。
于 2012-12-22T00:35:43.843 に答える
0
UPDATE
テーブル内のフィールドを更新するには、ステートメントを使用する必要があります。SQL Server を使用している場合は、次のように JOIN を使用して、1 つのテーブルのフィールドを別のテーブルの値で更新します。
UPDATE b
SET
b.fee_source_id = a.fee_source,
b.filing_date = a.filingdate
FROM
a_fees a
JOIN a_temp b
ON a.fee_id = b.fee_id
于 2012-12-22T00:28:38.307 に答える