UPDATE
Наконец-то удалось разобраться! Спасибо всем за помощь. Если вы обнаружите какие-либо потенциальные ошибки или возможности для улучшения в моем запросе, пожалуйста, сообщите мне.
SELECT *
FROM TBL_CAMPAIGNS C
INNER JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
INNER JOIN TBL_CAMPAIGNS_CHARITIES CC
ON C.campaign_Key = CC.camchar_CampaignID
INNER JOIN TBL_CHARITIES CH
ON CC.camchar_CharityID = CH.cha_Key
LEFT OUTER JOIN (
select recip_Chosen, count(recip_CampaignId) as ChosenCount
from TBL_CAMPAIGNRECIPIENTS
WHERE recip_CampaignId = @campaign
group by recip_Chosen
) CRC
on CH.cha_Key = CRC.recip_Chosen
WHERE C.campaign_Key = @campaign
Спасибо !!!
///////////////////
После некоторых действительно полезных советов я решил реализовать предложение orbMan следующим образом:
SELECT *
FROM TBL_CAMPAIGNS C
INNER JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
INNER JOIN TBL_CAMPAIGNS_CHARITIES CC
ON C.campaign_Key = CC.camchar_CampaignID
INNER JOIN TBL_CHARITIES CH
ON CC.camchar_CharityID = CH.cha_Key
WHERE C.campaign_Key = @campaign
Возвращает 1 строку для каждой благотворительной организации, связанной с данной кампанией (как связано с TBL_Campaigns_Charities). Тем не менее, у меня также есть другая таблица (TBL_CAMPAIGNRECIPIENTS CR), в которой подробно описывается каждый человек, приглашенный принять участие в кампании. Посетив страницу кампании, они могут выбрать одну из благотворительных организаций, связанных с кампанией.
Теперь мне нужно знать, сколько людей выбрали каждую из связанных благотворительных организаций (CR.recip_Chosen). Их детали не важны. Мне просто нужно знать, сколько людей выбрали каждую из связанных благотворительных организаций.
Так что-то вроде;
COUNT CH.cha_Key, FROM CR WHERE CR.recip_Chosen = CH.cha_Key
но интегрировано в приведенное выше утверждение.
Заранее спасибо.
ОРИГИНАЛЬНЫЙ ПОЧТ НИЖЕ:
/ / / / / / / / / / / / / / / / / / / /
Привет
Мне нужно получить данные из трех таблиц. Первые два являются прямыми и в настоящее время считаются как;
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
WHERE C.campaign_Key = @campaign
Таблица TBL_CAMPAIGNS содержит различные столбцы, пять из которых содержат int. Это int относится к ключу 3-ей таблицы 'TBL_CHARITIES'. Как мне вернуть данные третьей таблицы в сочетании с вышеприведенным?
Я создал следующее:
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
JOIN TBL_CHARITIES CH
ON CH.cha_Key = C.campaign_Char1
WHERE C.campaign_Key = @campaign
Но, как вы можете сказать, это возвращает только C.campaign_Char1. А как насчет C.campaign_Char2, C.campaign_Char3, C.campaign_Char4, C.campaign_Char5 ?????
Я попробовал это;
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
JOIN TBL_CHARITIES CH
ON CH.cha_Key = C.campaign_Char1
AND CH.cha_Key = C.campaign_Char2
AND CH.cha_Key = C.campaign_Char3
.......
WHERE C.campaign_Key = @campaign
Но, конечно, это не работает!
Любые предложения / помощь?
Заранее спасибо.