これは、2 つのテーブルから個別のレコードを正常に選択し、それらを 1 つの列に結合する既存のクエリです。
SELECT index_text AS unique_text FROM words
UNION
SELECT c1index_text FROM words_content
ORDER BY unique_text
ここで、すべてのレコードを削除したいと思いますWHERE body NOT IN (SELECT body FROM sms)
(またはNOT EXISTS
、動作するものは何でも問題ありません)。問題は、何を試しても、括弧を使用しようとするたびに構文エラーが発生するか、認識されないことsms.body
です (すべての列の前に親テーブルがある場合でも)。いくつかの SQLite の制限により、これが必要以上に難しくなっている可能性があると考えていますが、回避策が必要です。以下は、私が失敗したクエリです(これらのクエリのさまざまなバリエーションも試しましたが、役に立ちませんでした)。
SELECT index_text AS unique_text FROM words
UNION
SELECT c1index_text FROM words_content
WHERE body NOT IN (SELECT body FROM sms)
ORDER BY unique_text
エラーが発生します:No such column: body
SELECT words.index_text AS unique_text FROM words
UNION
SELECT words_content.c1index_text FROM words_content
LEFT JOIN sms
ON sms.body=unique_text
ORDER BY unique_text
エラーが発生します:No such column: unique_text
エイリアス列に結合して、に存在しないレコードのみを表示するにはどうすればよいsms.body
ですか? ありがとう、