「列」に選択ステートメントの結果で見つかったテキストが含まれているテーブルのすべてのエントリを返すように SQLite に依頼する方法がわかりません。
これが理にかなっている場合、私はそれがこのように少し動作することを望みます:
select * from table1`
where ("%" || (column) || "%") like in
("%" || (select different_column from table2) || "%")`
どんな助けでも大歓迎です。もっと情報が必要な人がいたら教えてください。
編集: 申し訳ありませんが、フォーマットを編集して読みやすくし、以下に詳細を追加しました。この質問を編集するだけで、ばかげて読めないコメントも削除しました。
table1 (アラート) には、文字列を格納する「lookup_info」という列が含まれています。文字列は通常、次のようになります。
---
:account_description: Administrator
:alertable_class: Computer
:alertable_name: exampledotnet
:network_account_type:
:wmi:
:user: exampledomain\administrator
table2 (devices) には、文字列を格納する「name」という列が含まれています。文字列は通常、次のようになります。
so-ws-rm101
私がしたいのは、table1 の "lookup_info" 列のどこかに、table2 の "name" 列の下にある table2 (デバイス) に格納されているコンピューター名が含まれていないtable1 (アラート) のすべてのエントリを返すことです。
基本的に、存在しないコンピューター名を参照するアラートがいくつかあります。それらのアラートが必要です。
ありがとうございました。
編集: アラート テーブル内のすべてのエントリの lookup_info 列を含む、alerts_fts という名前の fts3 テーブルを作成しました。今回は全文検索で再度検索してみます。これは私が使用しているクエリです:
select *
from alerts_fts
where alerts_fts.lookup_info match ( select group_concat(name, " OR ")
from Devices
group by "x")
これにより、クエリは次のようになります。
select *
from alerts_fts
where alerts_fts.lookup_info match (cw-ws-example OR so-p2-132-example OR
... OR so-p4-lastexample)
group by "x")
当然、これはまだ機能していません。クエリは何も返しません。私は何を間違っていますか?