Håller på med en nyhetsbrevs-"motor". Har delat upp det enligt följande:
[b]mail_addresses[/b]
id | mail_address
[b]groups[/b]
id | group_name
[b]group_rel[/b]
id | mail_id | group_id
[b]newsletters[/b]
id | caption | newstext osv...
[b]newsletter_rel[/b]
id | news_id | group_id
Man lägger alltså till mottagarna i en tabell, dessa kan sen ingå i flera grupper, därav tabellen "group_rel" som håller reda på id:t på grupper samt mottagaren.
Även själva nyhetsbreven ska gå att skicka till flera grupper och detta håller "newsletter_rel" reda på.
Om nu en mottagare ingår i, säg två grupper, och man ska skicka ut ett brev till just dessa två ska ju inte den behöva få brevet mer än en gång. Hur kan jag få ut "unika" mottagare med distinct utifrån ett id från "newsletters" tabellen? och kan man i samma fråga få ut antalet?
Använder en Accessdatabas till detta.
select distinct m.mail_address
from newsletters n
inner
join (
newsletter_rel nr
inner
join (
groups g
inner
join (
group_rel gr
inner
join mail_addresses m
on m.id = gr.mail_id
)
on gr.group_id = g.id
)
on g.id = nr.group_id
)
on n.id = nr.news_id
where n.id = <id>;
För att få ut det totala antalet, är nog det bästa att ställa en separat fråga.
Denna funka ju fint, men hur blir count-frågan?
Har testat med följande, men får fel...
select count(distinct m.mail_address)
from newsletters n
inner
join (
newsletter_rel nr
inner
join (
groups g
inner
join (
group_rel gr
inner
join mail_addresses m
on m.id = gr.mail_id
)
on gr.group_id = g.id
)
on g.id = nr.group_id
)
on n.id = nr.news_id
where n.id = <id>;
Jag vill räkna hur många "unika" mottagare det kommer skickas till.
Får detta felmeddelande:
Syntax error (missing operator) in query expression 'COUNT(DISTINCT m.mail_address)'.
Tar jag bort "distinct" från frågan räknar den alla, men eftersom en mottagare kan finnas i flera grupper som det skickas till ska den ju bara räknas en gång.
Njae.. den vill inte fungera. Borde det inte vara en join till eller nåt, för "n.id=<id>" kan jag ju inte använda då n.id syftar på tabellen newsletter_rel. Det id jag har är id:t för newsletters tabellen.