Опитвам се да оптимизирам тази заявка, но не мога да я разбера. Всяка помощ е повече от добре дошла. Това е вътре в съхранена процедура, така че 1 се заменя с IN параметър.
Таблица userGroupRelation
userGroupID BIGINT --> външен ключ към userGroupID в таблицата на групите
userID BIGINT --> външен ключ към таблицата потребители
Таблични папки
ownerID BIGINT --> външен ключ към таблицата потребители
postersGroup BIGINT --> външен ключ към userGroupID в таблицата на групите
други неща...
SELECT folders.*,COUNT(userGroupRelation.userID) AS users
FROM folders
LEFT JOIN userGroupRelation
ON folders.postingGroupID = userGroupRelation.userGroupID
WHERE folders.ownerID = 1
OR userGroupRelation.userGroupID IN (
SELECT userGroupID FROM userGroupRelation WHERE userID = 1)
GROUP BY folders.folderID;
По принцип искам да получа всички папки, които потребителят може да види (или защото ги притежава, или защото е в група плакати за тази папка)