Mehrere Antwortdaten in einer Antwort zurückgeben
In Ihrem PHP-Code haben Sie eine Abfrage, die mehrere Datenzeilen aus einer Datenbanktabelle abruft . Sie erhalten jedoch mehrere Antworten und möchten diese zu einer einzigen Antwort mit mehreren Datensätzen zusammenführen.
Um dies zu erreichen, müssen Sie Ihre Abfrage ändern, um einen Left-Join für die erforderlichen Tabellen durchzuführen. Anstatt Studentendaten abzurufen, rufen Sie Fachdaten ab und beziehen die relevanten Studenteninformationen mithilfe von Linksverknüpfungen ein. Dadurch können Sie verwandte Daten aus mehreren Tabellen in einer einzigen Antwort einschließen.
Hier ist ein Beispiel der aktualisierten Abfrage:
$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';
In dieser Abfrage:
Nachdem Sie diese Abfrage ausgeführt haben, erhalten Sie eine einzelne Antwort mit mehreren Fachdatensätzen, jeweils mit den erforderlichen Studenteninformationen und berechneten Werten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3