製品テーブルがあり、各製品にはカテゴリ フィールドがあります(これは変更する必要がなく、そのままデータを読み取る必要があります)、製品テーブルから、一意のカテゴリのみでカテゴリ テーブルを更新したかった(空のカテゴリを処理するために a も使用しIFNULL
ます)、これはこれまでのところ機能するものです:
string query = "INSERT INTO categories (name)
SELECT DISTINCT(IFNULL(category, \"Uncategorized\")) AS category_name
FROM products
WHERE NOT EXISTS (
SELECT name FROM categories
WHERE name = category_name)";
上記のクエリを使用すると、一意のカテゴリ フィールドでカテゴリを更新でき、実行する必要があるたびに、存在しないカテゴリのみがテーブルに追加されます。
しかし、上記に加えて、次のように挿入された各カテゴリにプロファイル ID を含める必要もありますが、これは機能しません。
string query = "INSERT INTO categories (profile_id, name)
SELECT " + profileId.ToString() + ",
DISTINCT(IFNULL(category, \"Uncategorized\")) AS category_name
FROM products
WHERE NOT EXISTS (
SELECT name FROM categories
WHERE name = category_name
AND profile_id = @profileId)";
クエリでこれを達成する方法はありますか?
上記は私にメッセージを与えます:
SQLite error near "DISTINCT": syntax error
SqliteMan エラー:
Query Error: near "DISTINCT": syntax error Unable to execute statement
私がはっきりしていない場合は教えてください。何についてもっと明確にする必要がありますか。