Это folders
таблица:
+------------+
| id name |
|------------|
| 1 dir1 |
| 2 dir2 |
+------------+
Это files
таблица:
+------------------------------+
| id folder_id name deleted |
|------------------------------|
| 1 1 file1 true |
| 2 1 file2 false |
| 1 2 file3 true |
| 2 2 file4 true |
+------------------------------+
Как видите, dir1
и dir2
имеет 2 файлаза реж.Но в dir1
удален только один файл и один файл доступен.Тем не менее, dir2
имеет 2 файла, но оба они удалены.Таким образом, там не осталось никаких файлов.
Я пытаюсь получить таблицу папок и директории, в которых нет файлов (все удалены).
Пока я пробовал это, но сделалне работает.
SELECT
"dirs".*
FROM
"dirs"
INNER JOIN "files" ON ( "files"."folder_id" = "folders"."id" )
WHERE
( "files"."deleted" IS FALSE )
GROUP BY
"folders".ID
HAVING
COUNT ( files.ID ) != 0 /* or > 0 or == 0 */
Ожидаемый результат:
+------------+
| id name |
|------------|
| 2 dir2 |
+------------+
Поскольку dir2
имеет файлы, но все удалены.