Я хочу добавить результаты двух отдельных подсчетов SQlite.Предположим, у меня есть 2 таблицы с именами entries
и scores
и 2 запроса:
SELECT COUNT(1) FROM entries WHERE
key NOT IN (SELECT key FROM scores)
SELECT COUNT(1) FROM scores WHERE
value <= threshold
Может быть, я мог бы сделать что-то подобное, чтобы получить сумму их результатов:
SELECT COUNT(1) from (
SELECT key FROM entries WHERE
key NOT IN (SELECT key FROM scores)
UNION ALL
SELECT key FROM scores WHERE
value <= threshold
)
Но не слишком ли это малоэффективно?Это называется довольно часто и может мешать плавности пользовательского интерфейса.
Спасибо.
[ПРАВИТЬ] Что я на самом деле пытаюсь сделать:
Я делаюприложение, чтобы помочь изучению словарного запаса.В таблице entries
хранятся «статические» данные о типе слова, определении и т. Д. В таблице scores
хранится информация о том, насколько хорошо вы выучили слова (например, производительность, запланированное время следующего просмотра)
Комупроверьте количество оставшихся слов для изучения / просмотра, я подсчитываю, сколько слов еще не существует в таблице scores
(т. е. никогда не трогали) или когда накопленный балл довольно низок (т. е. нуждается в рецензировании).
Причина, по которой я не объединяю эти 2 таблицы в 1 (что сделало бы мою жизнь намного проще), заключается в том, что иногда мне нужно обновить таблицу entries
либо путем добавления новых слов, либо удаления нескольких слов, либо обновления их содержимого.и я не нашел простого способа сделать это .Если я просто сделаю INSERT OR REPLACE
, я потеряю информацию о результатах.