Это может быть просто для некоторых, но я не могу это решить.Написание комплекса MySQL Присоединиться к запросу
У меня есть 3 таблицы:
Команды, пользователей, теги
Teams Users Tags
------------------- ------------------ -----------------------
userID | teamUserID userID | username userID | name | value
------------------- ------------------ -----------------------
1 | 2 1 | dan 2 | myTag | 1
1 | 3 2 | bob 2 | aTag | 2
1 | 4 3 | jon 3 | bTag | 1
4 | rob 4 | cTag | 5
Каждая команда может иметь некоторое количество пользователей в нем, и каждый пользователь может владеть несколько тегов.
Мне нужен запрос, который предоставит список пользователей в любой команде с общим количеством тегов, которые у них есть.
Так что, когда я прошу результатов от команды 1 (команда Дана) он должен вернуть это:
-----------------------------------
userID | username | tagTotalValue
-----------------------------------
2 | bob | 3
3 | jon | 1
4 | rob | 5
У меня есть этот запрос до сих пор, но это только дает мне одну запись с общей общей для всей команды , а не список всех пользователей в команде отдельно с их итогами.
SELECT username, SUM(value) tagTotalValue
FROM users u LEFT JOIN tags t
ON u.userID = t.userID
WHERE u.userID IN (SELECT teamUserID FROM teams WHERE userID = 1)
Помощь!
Если кто-нибудь может объяснить хороший способ разработки способов создания этих запросов, я был бы очень благодарен за это. Мне просто нужно сделать курс mySQL, или есть простой метод, который я могу использовать?
Ваша модель данных не имеет смысла. Почему «команды» имеют два идентификатора пользователя? –
userID является владельцем команды, а teamUserID являются идентификаторами пользователей. Я ценю, что именование может быть немного запутанным. – Dan