У меня есть следующая структура таблицы:Количество MySQL и присоединиться к 4 таблицы
Таблица Папка
id | title | is_hidden
Таблица объект
id | name | is_hidden | folder_id
Таблица этикетки
id | name
Таблица label_to_folder
id | label_id | folder_id
- Каждый объект всегда принадлежит к папке.
- Каждая папка может принадлежать к одной или более меток (это определяется по таблице)
label_to_folder
Я пытаюсь получить наиболее используемые (популярные) этикетки, и я достигну его (я думаю, : P) с помощью следующего запроса: SELECT COUNT(lf.label_id) AS cnt, lf.label_id, l.name FROM label_to_folder lf JOIN label l ON lf.label_id=l.id GROUP BY lf.label_id ORDER BY cnt DESC limit 8
Что у меня возникают проблемы с, есть степень выше запрос, так что не считается скрытые папки (folder.is_hidden = 1) или пустые папки (пустая папка один без объектов вообще или все объекты папки скрыты)
Любая помощь приветствуется.
EDIT
sqlfiddle: http://sqlfiddle.com/#!9/65526/1 Результат есть включает в себя папку с идентификатором 5, но все его папки пусты - это то, что я пытаюсь устранить.
может вы добавляете некоторые данные, чтобы я мог воссоздать его, чтобы проверить его? – davejal
Простое наблюдение - 'id' в таблице label_to_folder выглядит излишним. Помимо этого, если хотите, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, предоставьте правильные инструкции CREATE и INSERT (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему , 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry
@Strawberry Я работаю над скриптом sql – CrisDeBlonde