Итак, у меня есть конкретный запрос, который я пытаюсь настроить немного. Потребности в проекте немного изменились, и я не уверен, как подойти к этому.mysql query с предложением HAVING COUNT
У меня есть 3 таблицы - главная таблица, таблица «теги», а затем таблица ссылок, чтобы привязать теги к основным записям. Морщина заключается в том, что для этой привязки имеется вес, и это используется для суммирования общего веса тегов, связанных с конкретной записью Name в основной таблице. Короче говоря, главная запись может содержать несколько тегов, каждая с другим весом. Текущий запрос суммирует все веса тегов и упорядочивает их на общую сумму всех тегов.
UID | Name
-----------------
123 | Robert
UID | Tag_Name
-----------------
1 | Name_One
2 | Name_Two
Tag_ID | Name_ID | Weight
-----------------------------
2 | Name_One | 2
1 | Name_Two | 3
1 | Name_One | 5
В настоящее время, я построил это, что совершает этот штраф, где 2,1 представляет собой строку из тега идентификаторами, что я ищу, чтобы соответствовать:
SELECT person.id,
SUM(linkage.weight) AS total_weight
FROM (person)
INNER JOIN linked_tags AS linkage
ON linkage.track_id = person.id AND linkage.tag_id IN (2,1)
GROUP BY person.id
HAVING COUNT(DISTINCT linkage.tag_id)=1
ORDER BY total_weight DESC
Я хочу продлить это для другой использование. Прямо сейчас теги id, которые передаются как строка, являются субтрактивными. Он находит только совпадения, когда оба идентификатора тега существуют для определенного идентификатора человека. Если бы мне захотелось передать еще одну строку id, где, если ANY-идентификатор пользователя равен ЛЮБОЙ из идентификатора тега из этой строки, за которым следует текущая строка с надбавкой id, плюс суммируйте вес этих тегов, как я могу это сделать ?
и конец) = 2, является ли счетчик количества чисел в части (1,2) непосредственно перед этим? – jpea
@jpea. , , Да, это счет. Ваш исходный запрос искал только одно совпадение в этом наборе. Вы хотите их всех, поэтому вам нужно «2», а не «1». –
Извините, еще один вопрос - так что (2,1,3,4) часть - это то, что ВСЕ идентификатора тега независимо от того, должны ли они быть субтрактивными? – jpea