Sobes.tech
Middle

Jak zbudować zapytanie z tabelą pośrednią dla maksymalnej daty kursu?

sobes.tech AI

Odpowiedź od AI

Aby uzyskać maksymalną datę kursu za pomocą tabeli pośredniej, można zastosować zapytanie SQL z agregacją i JOIN.

Załóżmy, że istnieją tabele:

  • courses (id, nazwa)
  • course_dates (course_id, data, cena)

Zadaniem jest uzyskanie dla każdego kursu wpisu z maksymalną datą.

Przykład zapytania:

SELECT c.id, c.nazwa, cd.data, cd.cena
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;

Tutaj:

  • W podzapytaniu max_dates wybierana jest maksymalna data dla każdego kursu.
  • Następnie główne zapytanie łączy kursy z datami i filtruje po maksymalnej dacie.

Taki sposób pozwala uzyskać aktualne dane z maksymalną datą kursu, korzystając z tabeli pośredniej.