Sobes.tech
Middle

Jak strukturovat dotaz s mezistubou pro maximální datum kurzu?

sobes.tech AI

Odpověď od AI

Pro získání maximálního data kurzu pomocí mezitabulky lze použít SQL dotaz s agregací a JOIN.

Předpokládejme, že existují tabulky:

  • courses (id, název)
  • course_dates (course_id, datum, cena)

Úkolem je získat pro každý kurz záznam s maximálním datem.

Příklad dotazu:

SELECT c.id, c.název, cd.datum, cd.cena
FROM courses c
JOIN course_dates cd ON c.id = cd.course_id
JOIN (
    SELECT course_id, MAX(datum) AS max_datum
    FROM course_dates
    GROUP BY course_id
) max_dates ON cd.course_id = max_dates.course_id AND cd.datum = max_dates.max_datum;

Zde:

  • V poddotazu max_dates je vybráno maximální datum pro každý kurz.
  • Poté hlavní dotaz spojuje kurzy s daty a filtruje podle maximálního data.

Tento přístup umožňuje získat aktuální data s maximálním datem kurzu pomocí mezitabulky.