Sobes.tech
Middle

Курстун эң жогорку датасы үчүн аралык таблицасы менен суроону кантип түзүү керек?

sobes.tech AI

AIден жооп

Мектептин эң жогорку датасын ортодогу таблица колдонуп алуу үчүн, SQL суроосун агрегация жана JOIN менен колдонсо болот.

Айталы, төмөнкү таблицалар бар деп эсептейли:

  • courses (id, аталышы)
  • course_dates (course_id, дата, баа)

Маселе — ар бир курс үчүн эң жогорку датаны алуу.

Суроо мисалы:

SELECT c.id, c.аталышы, cd.дата, cd.баа
FROM courses c
JOIN course_dates cd ON c.id = cd.course_id
JOIN (
    SELECT course_id, MAX(дата) AS max_дата
    FROM course_dates
    GROUP BY course_id
) max_dates ON cd.course_id = max_dates.course_id AND cd.дата = max_dates.max_дата;

Мында:

  • max_dates ички суроодо, ар бир курс үчүн эң жогорку дата тандалат.
  • Андан соң негизги суроо курстарды даталар менен бириктирип, эң жогорку дата боюнча фильтрлейт.

Бул ыкма курсунун эң жогорку датасы менен актуалдуу маалыматтарды алууга мүмкүндүк берет, ортодогу таблица колдонулуп.