У меня есть таблица, представляющая троичное отношение между предложениями, профилями и навыками.
Любое данное предложение может иметь более одного профиля и более одного ассоциированного навыка.
Что-то вродеthis:
таблица ternary_relationship
id_Offer - id_Profile - id_Skill
1 - 1 - 1
1 - 1 - 2
1 - 1 - 3
1 - 2 - 1
2 - 1 - 1
2 - 1 - 2
2 - 1 - 3
2 - 2 - 1
таблица предложений
Offer - business_name
1 - business-1
1 - business-1
1 - business-1
1 - business-1
2 - business-2
2 - business-2
2 - business-2
2 - business-2
Я хочу выполнить фильтрацию запросов по профилю и рассчитывать предложение только один раз, независимо от того, скольконавыки, которые он ассоциировал.
Я делал что-то вроде следующего запроса:
SELECT business_name, COUNT(*)
FROM Offer INNER JOIN
ternary_relationship
ON Offer.id_Offer = ternary_relationship.id_Offer AND
id_Profile = '1'
GROUP BY business_name
ORDER BY COUNT(*) DESC;
Я видел несколько возможных решений, но яне в состоянии заставить кого-либо работать на мое дело.Ни когда я группирую по обоим именам id_Offer, ни когда я фильтрую только по id_Offer, это тоже работает.Я всегда получаю где-то дублированные записи.