4

2 つの別々のテーブルから行を削除するにはどうすればよいですか? 内部結合を使用してこれを行うことは可能だと思いました

DELETE a.*, b.* FROM Holiday INNER JOIN Accommodation b on a.LocationID = b.LocationID

ここでは、最初のテーブルの主キーの場所を 2 番目のテーブルの場所 ID と一致させて削除しようとしています。SQL 例外 "sqlException near a" が発生します

私はSQLITE、Javaでこれをやっています

ここに画像の説明を入力

4

1 に答える 1

7

SQLite では、1 つのDELETEコマンドで 1 つのテーブルのみが削除されます。

書かれているように、クエリは実際には削除するレコードを制限していないため、本当にすべてのレコードを削除したい場合は、これを使用します:

DELETE FROM Holiday;
DELETE FROM Accommodation;

マスター テーブルの 1 つのレコードと子テーブルの対応するすべてのレコードを削除する場合は、そのキー値でフィルター処理するだけです。

DELETE FROM Holiday       WHERE LocationID = 1;
DELETE FROM Accommodation WHERE LocationID = 1;
于 2013-02-10T22:04:12.687 に答える