Sobes.tech
Middle

Курс күнінің ең жоғары датасы үшін аралық кестемен сұрауды қалай құрылымдау керек?

sobes.tech AI

AI-дан жауап

Орташа кестені пайдалана отырып, курстың ең соңғы күнін алу үшін, агрегация және JOIN қолданатын SQL сұрауын қолдануға болады.

Мысалы, кестелер бар деп есептейік:

  • courses (id, name)
  • course_dates (course_id, date, price)

Міндет — әр курс үшін ең соңғы күнді алу.

Мысал сұрау:

SELECT c.id, c.name, cd.date, cd.price
FROM courses c
JOIN course_dates cd ON c.id = cd.course_id
JOIN (
    SELECT course_id, MAX(date) AS max_date
    FROM course_dates
    GROUP BY course_id
) max_dates ON cd.course_id = max_dates.course_id AND cd.date = max_dates.max_date;

Мұнда:

  • max_dates ішкі сұрауында әр курс үшін ең соңғы күн таңдалады.
  • Содан кейін негізгі сұрау курстарды күндермен қосады және ең соңғы күн бойынша сүзеді.

Бұл әдіс арқылы орташа кестені пайдалана отырып, курстың ең соңғы күнін алуға болады.