У меня есть база данных политиков, политических партий и кандидатур на пост на выборах. База данных состоит из следующих таблиц: Люди, Группы, Кандидаты и Должности. Таблица Candidacies - это соединение отношений между людьми и группами. Каждая запись в таблице «Кандидаты» представляет кандидатуру на выборах и связана с определенной записью (запись в таблице «Записи»). Каждый пост имеет тип почтового сообщения (сенатор, президент и т. Д.) Из таблицы PostTypes и связан с избирательным округом, в этом случае один из 10 отделов (например, государство), взятый из таблицы (отделы).Комплекс SQL с несколькими объединениями
Итак, у меня есть:
Таблица: НАРОД; PK: id Таблица: ГРУППЫ; PK: id Таблица: КАНДИДАТЫ; PK: id, FKs: id_People, id_Groups, id_Posts Таблица: POSTTYPES; PH: id Таблица: POSTS; PK: id; FK: id_Department, id_PostTypes Таблица: ОТДЕЛ; PK: id
Я пытаюсь создать оператор SQL, который будет выбирать общее количество Кандидатов определенного типа сообщения (id_PostType = X), а post - это конкретный пост (id_Post = X) из определенного отдела (id_Department = X).
У меня есть работа, когда она выбрана Почтой, но, похоже, не может получить ее для дальнейшего выбора Департаментом. Думаю, мне, возможно, понадобится сделать еще одно соединение или что-то еще, но я проиграл.
Вот что у меня есть:
SELECT g.name, COUNT(c."id") AS theCount
FROM Candidacies c
JOIN Groups g
ON c."id_Groups" = g."id"
JOIN People p
ON c."id_People" = p."id"
WHERE (c."id_PostTypes" = "Senator")
GROUP BY g."name"
ORDER BY theCount
Это, как представляется, выбирая имена и общее количество кандидатов, где тип поста является сенатором. Как теперь добавить критерии отдела конкретного сообщения?
Можете ли вы добавить пример данных/ожидаемые результаты? – AdamMc331
Вы все еще пытаетесь решить это? – AdamMc331
Нет - я решил и дал наилучший ответ. Оба ответа были очень полезными - один из них был более подробным и понятным. – mattbowlby