Sobes.tech
Middle

Ako štruktúrovať dopyt s medziľahlou tabuľkou pre maximálny dátum kurzu?

sobes.tech AI

Odpoveď od AI

Za pridobitev največjega datuma tečaja z uporabo vmesne tabele lahko uporabite SQL poizvedbo z agregacijo in JOIN.

Predpostavimo, da obstajata tabeli:

  • courses (id, ime)
  • course_dates (course_id, datum, cena)

Naloga je, da za vsak tečaj pridobite zapis z največjim datumom.

Primer poizvedbe:

SELECT c.id, c.ime, 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;

Tukaj:

  • V podpoizvedbi max_dates je izbran največji datum za vsak tečaj.
  • Nato glavno povpraševanje poveže tečaje z datumi in filtrira po največjem datumu.

Tak pristop omogoča pridobitev posodobljenih podatkov z največjim datumom tečaja, z uporabo vmesne tabele.