ホームページ >データベース >mysql チュートリアル >SQL を使用して Microsoft Access でアップサートをシミュレートするにはどうすればよいですか?

SQL を使用して Microsoft Access でアップサートをシミュレートするにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-19 20:21:12814ブラウズ

How Can I Simulate Upserting in Microsoft Access Using SQL?

Microsoft Access で Upsert 操作をシミュレートします

通常、テーブルへの行の挿入と更新は 2 つの独立したプロセスです。しかし、1 つのクエリで両方の操作を実行したい場合はどうすればよいでしょうか?この操作は通常「アップサート」と呼ばれます。

Microsoft Access 2000 以降では、LEFT JOIN を含む UPDATE クエリを使用して Upsert 操作をシミュレートできます。構文は次のとおりです:

<code class="language-sql">UPDATE b
LEFT JOIN a ON b.id = a.id
SET a.f1 = b.f1, a.f2 = b.f2, a.f3 = b.f3;</code>

このクエリ内:

  • テーブル "b" は、挿入または更新する新しいデータです。
  • テーブル "a" は、操作対象の既存のテーブルです。
  • 左結合により、テーブル "a" に存在しない行が自動的に NULL 値で結合されます。

ID b.id の行がテーブル "a" に存在する場合、その行はテーブル "b" の値で更新されます。それ以外の場合は、新しい行がテーブル "a" に挿入されます。

例:

次の形式を考えてみましょう:

<code>| 表 "a" | 表 "b" |
|---|---|
| ID | Field1 | ID | Field1 |
| 1 | ValueA1 | 1 | ValueB1 |
| 2 | ValueA2 | 2 | ValueB2 |
| 3 | ValueA3 | 3 | ValueB3 |
|   |         | 4 | ValueB4 |</code>

上記の UPDATE クエリを実行すると、次の更新されたテーブル "a" が生成されます:

<code>| ID | Field1 |
|---|---|
| 1 | ValueB1 |
| 2 | ValueB2 |
| 3 | ValueB3 |
| 4 | ValueB4 |  **(ID = 4 的新行已插入)**</code>

以上がSQL を使用して Microsoft Access でアップサートをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。