Hi,
da Du ein "where a.Day=b.Day" machst und darueber hinaus
noch ein count(*) und ein group, ist es klar, dass Du nur
subsets erhaelst.
wenn ich das richtig interpretiere, dann vielleicht so:
SELECT Day, Accepted, Rejected from
((select date(datetime) as Day, count(*) as Accepted, 0 as Rejected
from mails where accepted=1 group by Day)
UNION
select date(datetime) as Day, 0 as Accepted, count(*) as Rejected
from mails where accepted=0 group by Day))
...
Aber ich weiss nicht, ob das UNION (welches 2 selects aneinander haengt)
das erlaubt! Schnell ist es auf keinen Fall :-)
Du kannst count() auch auf Spalten anwenden!
Gruss,
Ralf
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
> Behalf Of Martin Schmitt
> Sent: Monday, November 27, 2006 4:21 PM
> To: [email protected]
> Subject: [PUG] MySQL-Join
>
> Hallo!
>
> Dirk Rossel hatte mir neulich mal geholfen, das folgende Query
> zusammenzubauen:
>
> SELECT a.Day, a.Accepted, b.Rejected from
> (select date(datetime) as Day, count(*) as Accepted
> from mails where accepted=1 group by Day) as a,
> (select date(datetime) as Day, count(*) as Rejected
> from mails where accepted=0 group by Day) as b
> where a.Day=b.Day order by a.Day;
>
> Dabei kommen aber nur Datensätze rausgefallen, wo beide
> Subselects ein Ergebnis hatten.
>
> Also hätte ich nochmal eine Frage:
>
> Wie muß man die beiden Selects miteinander verknüpfen, damit
> auch eine Ausgabe erfolgt, wenn einer der beiden leer war?
>
> Hier vorhanden: MySQL 5.0.22, und einer, dem jeden Tag klarer
> wird, daß er keinen blassen Dunst von SQL hat. :-/
>
> -martin
>
> --
> Schmitt Systemberatung
> Linux/UNIX
> Giessener Str. 18
> Internet/Intranet
> 35415 Pohlheim/Germany E-Mail
> Infrastructure
> http://www.scsy.de
> Antispam/Antivirus
>
>
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org