Sobes.tech
Middle

Como estruturar uma consulta com uma tabela intermediária para a data máxima do curso?

sobes.tech IA

Resposta da IA

Para obter a data máxima do curso usando uma tabela intermediária, pode aplicar uma consulta SQL com agregação e JOIN.

Suponha que existam tabelas:

  • courses (id, nome)
  • course_dates (course_id, data, preço)

A tarefa é obter, para cada curso, o registo com a data máxima.

Exemplo de consulta:

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

Aqui:

  • Na subconsulta max_dates, é selecionada a data máxima para cada curso.
  • Depois, a consulta principal une os cursos com as datas e filtra pela data máxima.

Este método permite obter dados atualizados com a data máxima do curso, usando uma tabela intermediária.