GROUP BY + JOIN = Tabellen Salat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • GROUP BY + JOIN = Tabellen Salat

    Ich hätte da mal wieder ein Problem. Und zwar möchte ich mit einer Abfrage Daten aus 3 Tabellen erhalten. Dies funktioniert auch Reibungslos mit 2 Joins. Aber dann möchte ich die Datenmenge einschränken, in diesem Fall auf den nächsten Termin.

    Code:
    SELECT t.id as task_id, t.description, t.responsibleURI, t.start, u.id AS user_id,u.ubisURI, tp.placeURI
    			FROM user_task AS ut
    			INNER JOIN user AS u ON u.id = ut.loginID 
    			INNER JOIN task AS t ON t.id = ut.taskID AND reminder_on = 'yes' AND prototype = 'no'
    			LEFT JOIN task_place AS tp ON tp.taskID = t.id
    			WHERE reminder > NOW() 
                            GROUP BY u.id	
                            ORDER BY SEC_TO_TIME(SUM(TIME_TO_SEC(t.reminder)))
    Durch die Sortierung werden die Zeilen der Ergebnistabelle gemischt. Ich bekomme nun zwar in allen Rückgabe Zeilen den nächsten Erinnerungstermin genannt, aber leider sind die Daten in der Zeile nicht die die zu dem Erinnerungszeitpunkt gehören.
    Dann habe ich gelesen MySQL könne keine Daten sortieren (reminder ist ein DATETIME), aber auch wenn ich nach task_id (INT) sortiere oder die Umrechnung wie in der Abfrage mache entsteht diese Vermischung.
    Nun habe ich versucht die ORDER BY Klausel durch ein MIN() Funktion zu ersetzen, aber auch hier werden die Tabellenzeilen durch einander gebracht.

    Wie Überzeuge ich MySQL davon die Zeilen nicht durcheinander zuwerfen und mir trotzdem von jedem Nutzer nur den nächsten Termin auszuwerfen?

    Schon mal vielen Dank für eure Mühen!
    Wissen ist Macht
    Power is nothing without control
Lädt...
X