#android #sqlite #android-sqlite
#Android #sqlite #android-sqlite
Вопрос:
У меня есть 3 таблицы.
table_main:
----- ---------- -------------
| _id | ENTRY_ID | DATA |
----- ---------- -------------
| 1 | a1 | some data 1 |
| 2 | a2 | some data 2 |
| 3 | a3 | some data 3 |
----- ---------- -------------
table_additions:
---------- -----------
| ENTRY_ID | TIMESTAMP |
---------- -----------
| a1 | 123456 |
| a2 | 123458 |
| a1 | 123654 |
| a1 | 123658 |
| a2 | 123843 |
| a3 | 123911 |
---------- -----------
table_deletions:
---------- -----------
| ENTRY_ID | TIMESTAMP |
---------- -----------
| a3 | 123556 |
| a2 | 123558 |
| a3 | 123754 |
| a1 | 123858 |
| a3 | 123863 |
| a3 | 123976 |
---------- -----------
Я работаю в Android. Я хочу получить данные из table_main
всех записей, которые имеют :
количество вхождений в
table_additions
> количество вхождений вtable_deletions
Итак, в приведенном выше примере вывод должен быть:
----- ---------- -------------
| _id | ENTRY_ID | DATA |
----- ---------- -------------
| 1 | a1 | some data 1 |
| 2 | a2 | some data 2 |
----- ---------- -------------
Ответ №1:
Это можно сделать с помощью коррелированных подзапросов:
SELECT *
FROM table_main
WHERE (SELECT COUNT(*)
FROM table_additions
WHERE entry_id = table_main.entry_id
) >
(SELECT COUNT(*)
FROM table_deletions
WHERE entry_id = table_main.entry_id
)