私は3つのテーブル空港、位置と場所のヒントを持っています。ロケーションテーブルを更新した後、空港の名前を削除する必要があります。空港名は、場所のn_airports列には存在しません.n_airpots列は、昏睡状態の空港コードの集合です。私はLik%code%で選択して一つずつ削除しようとしましたが、それは有用ではありません。
これなステートメントはすべて他のテーブルにコードが存在しない行を削除する
DELETE
FROM location_hint
WHERE type = 2 AND name NOT IN
(
SELECT a.name
FROM airports a
WHERE a.code IN
(
SELECT n_airports
FROM location
)
)
空港テーブル
CREATE TABLE airports (
_id INTEGER,
code TEXT,
name TEXT,
PRIMARY KEY(_id)
)
CREATE TABLE `location` (
`_id` integer,
`country` text,
`city` text,
`n_airports` text,
PRIMARY KEY(_id)
)
を削除しているようです3210テストされていない
CREATE TABLE "location_hint" (
`_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT NOT NULL,
`type` INTEGER NOT NULL,
`country` TEXT,
`city` TEXT
)
でテストしてください、あなたのデータモデルを改造concideredことがありますか?関連するレコードをカンマで区切った値をテキストフィールドに入れることは、リレーショナルデータベースを持つという目的に反する。 – Morten
@Morten unfortunatlyプロジェクトの遺産部分であり、あまりにも多くはそれに縛られている – Yarh