Heim > Fragen und Antworten > Hauptteil
Ich habe zwei Tische
Klicken Sie auf die Tabelle
id |. Zeit
Fahrplan
id |. Zeitstempel
Ich möchte Daten aus zwei Tabellen erhalten. GROUP BY EXTRACT(DAY FROMride.timestamp) Ich erhalte die Daten aber nur dann, wenn ich in beiden Tabellen Einträge für denselben Tag habe, aber ich benötige die Daten unabhängig davon, ob beide Tabellen keine Daten enthalten. Ich weiß nicht, ob OUTER Join eine Antwort ist, aber MySQL unterstützt OUTER JOIN nicht
Meine aktuelle Abfrage erhält die Daten nur, wenn in beiden Tabellen Einträge vorhanden sind
COUNT(distinct ride.id) AS ride_ads, COUNT(distinct clicks.id) AS clicks FROM ride INNER JOIN clicks ON EXTRACT(DAY FROM ride.timestamp)=EXTRACT(DAY FROM clicks.time) GROUP BY EXTRACT(DAY FROM ride.timestamp), EXTRACT(DAY FROM clicks.time)```
P粉5292450502024-04-05 00:40:32
SELECT DATE(ride.timestamp) AS Day, COUNT(DISTINCT ride.id) AS ride_ads, COUNT(DISTINCT clicks.id) AS clicks FROM ride LEFT JOIN clicks ON DATE(ride.timestamp) = DATE(clicks.time) WHERE DATE(ride.timestamp) > NOW() - INTERVAL 15 DAY GROUP BY Day UNION SELECT DATE(clicks.time) AS Day, #selecting date from second table since I might have record in this table and I am using group by Day COUNT(DISTINCT ride.id) AS ride_ads, COUNT(DISTINCT clicks.id) AS clicks FROM ride RIGHT JOIN clicks ON DATE(ride.timestamp) = DATE(clicks.time) WHERE DATE(clicks.time) > NOW() - INTERVAL 15 DAY GROUP BY Day ORDER BY Day