한 응답으로 여러 응답 데이터 반환
PHP 코드에는 데이터베이스 테이블에서 여러 행의 데이터를 가져오는 쿼리가 있습니다. . 그러나 여러 응답을 받고 있으며 이를 여러 레코드가 있는 단일 응답으로 병합하려고 합니다.
이를 달성하려면 필요한 테이블에 대해 왼쪽 조인을 수행하도록 쿼리를 수정해야 합니다. 학생 데이터를 가져오는 대신 주제 데이터를 가져오고 Left 조인을 사용하여 관련 학생 정보를 포함합니다. 이렇게 하면 단일 응답에 여러 테이블의 관련 데이터를 포함할 수 있습니다.
업데이트된 쿼리의 예는 다음과 같습니다.
<code class="php">$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';</code>
이 쿼리의 경우:
이 쿼리를 실행하면 여러 주제 레코드가 포함된 단일 응답을 받게 됩니다. , 각각 필요한 학생 정보와 계산된 값이 포함되어 있습니다.
위 내용은 단일 MySQL 쿼리에서 여러 레코드와 관련 데이터를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!