2012-04-02 5 views
0

aus irgendeinem Grund (und ich denke ich weiß warum), wenn mehr als eine Zeile von $ activityday den gleichen Wert haben, werden die anderen Zeilen nicht mehr angezeigt. Ich denke, dass es wegen der Gruppe von ist, aber ich kann nicht sicher sein.GROUP BY entfernt Zeilen mit denselben Werten

Die $ activityday ist eine Zahl von 1 bis 9, die eine Aktivität an diesem Tag darstellt. Tabelle locations_activity nimmt diese Nummer und schreibt den Namen der Aktivität, während Gruppe von die Aktivitäten in Bezug auf die Wichtigkeit sortiert.

Gibt es eine Alternative, um alle meine Zeilen angezeigt zu bekommen? Vielen Dank! :)

SELECT 
venues.*, 
venues_activity.ACTIVITY_EN 
FROM venues 
INNER JOIN venues_activity 
ON $activityday = venues_activity.ID 
LEFT JOIN events 
ON events.VENUE_LOCATION = venues.ID 
AND start_datetime >= '$DATE_START_SELECTED' 
AND end_datetime < '$DATE_END_SELECTED' 
where events.VENUE_LOCATION IS NULL 
AND VENUE_TYPE='1' 
AND $closeday!='Closed' 
AND $activityday!='9' 
GROUP BY $activityday 

Antwort

2

glaube ich Ihnen die ORDER BY clause... not the GROUP BY clause wollen.

GROUP BY soll genau das tun, was Sie ... Gruppe doppelte Werte in einer einzigen Zeile beschreiben, die mit Aggregatfunktionen in Verbindung verwendet werden soll, wie SUM, AVG oder COUNT.

ORDER BY bestellt einfach die Ergebnisse.

+0

Wow, das ist mir nie in den Sinn gekommen. Vielen Dank! – pufAmuf

2

Verwenden order by in statt group by