Sobes.tech
Middle

Kaip sukurti užklausą su tarpinės lentelės pagal maksimalų kurso datą?

sobes.tech AI

Atsakymas iš AI

Norint gauti kurso maksimalią datą naudojant tarpinį lentelę, galima taikyti SQL užklausą su agregacija ir JOIN.

Tarkime, kad yra šios lentelės:

  • courses (id, pavadinimas)
  • course_dates (course_id, data, kaina)

Užduotis — kiekvienam kursui gauti įrašą su maksimaliu data.

Pavyzdinė užklausa:

SELECT c.id, c.pavadinimas, cd.data, cd.kaina
FROM courses c
JOIN course_dates cd ON c.id = cd.course_id
JOIN (
    SELECT course_id, MAX(data) AS max_data
    FROM course_dates
    GROUP BY course_id
) max_dates ON cd.course_id = max_dates.course_id AND cd.data = max_dates.max_data;

Čia:

  • Subužklausoje max_dates pasirenkama maksimali data kiekvienam kursui.
  • Pagrindinė užklausa jungia kursus su datomis ir filtruojama pagal maksimalią datą.

Šis metodas leidžia gauti naujausius duomenis su maksimaliu kurso datumu, naudojant tarpinę lentelę.