JOIN 개념을 설명하는 많은 자습서와 예제가 있습니다. 그러나 특정 시나리오에 예제를 적용하는 데 어려움을 겪고 있습니다. 도움을 청하는 것이 좋을 것입니다. 그리고 원하는 결과를 얻기 위해 솔루션에서 어떤 일이 일어나고 있는지 물어 보는 것이 너무 많지 않은 경우.3 테이블에서 행 선택
3 테이블 : 사용자, 평가, assessment_log.
사용자
+--------+------+------+-----------+----------+-----------+-------+--------+-----------+---------------+------+----------+
| UserID | User | Pass | FirstName | LastName | LastLogin | Email | Mobile | Kenitalla | AccountStatus | Role | Operator |
+--------+------+------+-----------+----------+-----------+-------+--------+-----------+---------------+------+----------+
평가
+--------------+------+-----------+-----------+-----------+-----------+-----------+--------------+----------+---------+----------+
| AssessmentID | Name | Criteria1 | Criteria2 | Criteria3 | Criteria4 | Criteria5 | RoleRequired | Required | Renewal | Operator |
+--------------+------+-----------+-----------+-----------+-----------+-----------+--------------+----------+---------+----------+
assessment_logs
+-----------------+------+----------------+------------+--------+-----------+----------+----------+----------+----------+----------+----------+---------+---------------+---------+
| AssessmentLogID | Date | AssessmentName | AssessedBy | UserID | StaffName | Comments | Verdict1 | Verdict2 | Verdict3 | Verdict4 | Verdict5 | Verdict | RenewalPeriod | NextDue |
+-----------------+------+----------------+------------+--------+-----------+----------+----------+----------+----------+----------+----------+---------+---------------+---------+
사용자가 평가를 취 항목이 assessment_log에 간다. 선택 사항 인 일부 평가가 필요합니다 (필수 열에서 참 또는 거짓). RoleRequired 열은 평가가 필요한 사용자 역할을 규정합니다.
아직 전달하지 않은 사용자 및 평가 목록을 생성하고 싶습니다. 평가가 필요하며 필수 역할이 사용자 역할과 일치해야합니다. 평결 항목에 "합격"이 표시된 assessment_log에 대한 항목이 없으면 평가가 아직 통과되지 않았 음을 나타냅니다. 일반 말하기에
, 나는 다음과 같은 결과를 달성하기위한 쿼리를 찾고 있어요 :+------------------+-----------------+----------------+
| assessments.Name | users.FirstName | users.LastName |
+------------------+-----------------+----------------+
평가가 필요합니다 (필수 사실 동일)의 RequiredRole는 users.Role 열을 일치하고있다 평결 항목에 "합격"값이있는 평가에 대해서는 assessmentments_log에 항목이 없습니다.
추가 설명이 필요한 경우 알려 주시기 바랍니다.
미리 감사드립니다.
이 나에게 내가 그 주셔서 감사합니다 expect- 결과를 제공하는 것 : 한편
, 여기에 조인 구문을 단순화하기 위해 즉석에서 열 이름을 변경하는 방법! LEFT JOIN을 자세히 살펴볼 것입니다 ... 명확한 예제와 설명으로도 개념에 어려움을 겪고 있습니다. LEFT JOIN에 추가 기준을 연결 한 것처럼 보입니다. 내가 읽은 예제는 한 테이블에서 행을 선택하고 행이 일치하는 두 번째 테이블 (오른쪽)에서 행을 반환하는 것과 관련이 있습니다. "AND al.UserID = u.UserID"및 "AND al.답신 = '합격'부분의 쿼리? –
http://www.mysqltutorial.org/mysql-left-join.aspx 정상적인 (내부) 조인과 동일하게 작동합니다. JOIN ON()이 발견되면 더미 NULL의 모든 행이 대신 반환됩니다. 따라서 LEFT JOIN B ON (cond) WHERE b.id IS NULL은 b가 일치하는 행 (cond)이없는 행을 반환합니다. 알았다? – peufeu