# MySQL Abfrage



## didi577 (1. Dez 2018)

Hi,

ich habe folgende Herausforderung:


Es gibt 2 Tabellen "tickets" und "ticket_aktionen". In der linken Tabelle gibt es 3 Datensätze (Tickets) In der rechten Tabelle stehen die Aktionen zu den 3 Tickets. ticket_id entspricht id (gelbe Spalten). Meine Abfrage soll folgendes ergeben:
Gib alle tnumber aus Tabelle tickets aus, wo subject "Ihre Meldung" die letzte Aktion in einem Tickets ist. In diesem Beispiel also die Tickets mit id 2 und 4.

Wer kann mir hier helfen? Danke schon mal im voraus


----------



## Thallius (1. Dez 2018)

Also das DB Design ist einfach Schrott. Klar kann man das Ergebnis erzielen das du willst aber nur mit super inperformanten subselsect abfragen. Wenn das mal mehr als 10 Datensätze werden wird der User irgendwann an einer Koffein Vergiftung sterben weil er Länge wartet als arbeitet....


----------



## didi577 (1. Dez 2018)

Für die Struktur kann ich nichts. Die DB ist vorgegeben und für mich nicht änderbar. Ich versuche nur für mich wichtige Auswertungen heraus zu holen.


----------



## Meniskusschaden (1. Dez 2018)

Man könnte z.B. mit einem inneren Select pro Ticket die Ticket-ID und maximale Aktions-ID ermitteln und in einem äußeren Select damit die übrigen Werte holen und filtern. Das Subselect finde ich da eigentlich nicht so problematisch, weil das innere Select keine Infos aus dem äußeren Select benötigt.


----------



## mihe7 (1. Dez 2018)

Ansatz:

```
SELECT ticket_id FROM ticket_aktionen
WHERE id IN (SELECT max(id) FROM ticket_aktionen GROUP BY ticket_id)
  AND subject = 'Ihre Meldung';
```


----------



## didi577 (2. Dez 2018)

Das ist die Lösung  Vielen Dank und schönen 1. Advent


----------

