Retornando dados de múltiplas respostas em uma resposta
Em seu código PHP, você tem uma consulta que busca múltiplas linhas de dados de uma tabela de banco de dados . No entanto, você está obtendo várias respostas e deseja mesclá-las em uma única resposta com vários registros.
Para conseguir isso, você precisa modificar sua consulta para realizar uma junção à esquerda nas tabelas necessárias. Em vez de buscar os dados dos alunos, você buscará os dados da disciplina e incluirá as informações relevantes dos alunos usando junções à esquerda. Isso permitirá que você inclua dados relacionados de várias tabelas em uma única resposta.
Aqui está um exemplo da consulta atualizada:
$sql = 'SELECT
subjects.userid,
users.name AS username,
(
SELECT id
FROM tbsubjects
WHERE userid = subjects.userid
ORDER BY id ASC
LIMIT 1
) AS subjectsid,
(
SELECT name
FROM tbsubjects
WHERE
userid = subjects.userid
ORDER BY time DESC
LIMIT 1
) AS subjectname,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND month = DATE_FORMAT(NOW(), "%c")
) AS activepts,
IFNULL(SUM(subjects.points), 0) AS totalpts,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 1
) AS sem1,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 2
) AS sem2,
(
SELECT IFNULL(SUM(points), 0)
FROM tbsubjects
WHERE
userid = subjects.userid
AND semester = 3
) AS sem3
FROM
tbsubjects AS subjects
LEFT JOIN tbusers AS users ON users.id = subjects.userid
WHERE subjects.userid = :userid GROUP BY subjects.userid ORDER BY subjects.time DESC';
Nesta consulta:
Depois de executar esta consulta, você obterá uma única resposta contendo vários registros de disciplinas, cada um com as informações necessárias do aluno e valores calculados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3