Hi!
Ich denke, du willst Ergebnisse für jeden Monat haben, also musst du den Outer-Join auf den Monat anwenden.
Ich bekomme trotzdem nur die Monate angezeigt, die Daten beinhalten:
Kann ich nicht nachvollziehen.
CREATE TEMPORARY TABLE y (
ID int(10),
d int NOT NULL
);
INSERT INTO y VALUES
(1, UNIX_TIMESTAMP(NOW())),
(2, UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH));
CREATE TEMPORARY TABLE m (
m VARCHAR(10));
INSERT m VALUES ('2010|07'),('2010|08'),('2010|09');
SELECT *, FROM_UNIXTIME(d, '%Y|%m')
FROM m
LEFT JOIN y ON FROM_UNIXTIME(d, '%Y|%m') = m
GROUP BY m DESC;
Ergibt bei mir 3 Datensätze.
Was habe ich falsch gemacht?
Kann ich dir nicht beantworten, weil mir dazu Details fehlen. Ich kenne von deiner Tabelle nicht den Aufbau und kann nur ahnen, dass du da Timestamp in Integerfeldern abgelegt hast. Den einzigen Fehler den ich sehe, ist das überflüssige % vor dem | im Formatstring, was aber keine Auswirkung hat.
Lo!