고급 MySQL 왼쪽 조인 IFNULL 쿼리
고급 MySQL 쿼리에 대한 도움말을 찾고 있습니다.아래 표시된 현재 쿼리는 정상적으로 작동합니다.별도의 쿼리를 작성하지 않아도 되도록 필드를 추가하고 싶습니다.새 필드, 카운트(TableA.Field05
), 의 총 레코드 수를 산출해야 합니다.TableA
.
표 A에는 10개의 레코드가 있습니다.
표 B에는 100개의 레코드가 있습니다.
SELECT count(TableB.Answer) AS unAnswered
FROM TableA
LEFT JOIN TableB
ON ( TableA.Field01 = TableB.fkField01 AND TableA.Field02 = TableB.fkField02 AND TableB.Answer = '1')
WHERE TableB.fkField03 IS NULL AND TableA.Field04 = 10
GROUP BY TableA.Field01, TableA.Field02
결과:
unAnswered = 8
이것이 맞습니다.
원하는 결과는 다음과 같습니다.
unAnswered = 8 count(TableA.Field05) = 10
--
이것은 데이터와 결과의 예입니다.
SELECT count(TableB.Answer) AS unAnswered
FROM TableA LEFT JOIN TableB ON ( TableA.Field01 = TableB.fkField01 AND TableA.Field02 = TableB.fkField02 AND TableB.Answer = '1')
WHERE TableB.fkField03 IS NULL AND TableA.Field04 = 10
GROUP BY TableA.Field01, TableA.Field02
TableA
Field01 = 1, Field02 = 1, Field03 = 10
Field01 = 1, Field02 = 2, Field03 = 21
Field01 = 1, Field02 = 3, Field03 = 22
Field01 = 1, Field02 = 4, Field03 = 34
TableB
Field01 = 1, Field02 = 1, Answer = 1
Field01 = 1, Field02 = 2, Answer = 1
Field01 = 1, Field02 = 3, Answer = 1
Field01 = 2, Field02 = 1, Answer = 1
Field01 = 2, Field02 = 2, Answer = 1
Field01 = 2, Field02 = 3, Answer = 1
Result
count(TableB.Answer) AS unAnswered = 1
Result trying to achive
count(TableB.Answer) AS unAnswered = 1
count(TableA.Field03) = 4
어떤 도움이라도 주시면 대단히 감사하겠습니다.
테이블 A의 개수를 현재 쿼리에 추가하려는 경우 선택 문에 추가하면 됩니다.
'SELECT count(표 B)'.답변) 무응답으로 카운트(표 A).필드02) 표 A에서 ...'
저는 방금 제 질문을 알아냈습니다.
SELECT **COALESCE(count(DISTINCT TableB.Answer)) AS unAnswered, count(DISTINCT TableA.Field05)**
FROM TableA
LEFT JOIN TableB
ON ( TableA.Field01 = TableB.fkField01 AND TableA.Field02 = TableB.fkField02 AND TableB.Answer = '1')
WHERE TableB.fkField03 IS NULL AND TableA.Field04 = 10
GROUP BY TableA.Field01, TableA.Field02
COALESCE와 DISTINCT를 추가하여 문제를 해결했습니다.여러분의 도움에 감사드립니다.
언급URL : https://stackoverflow.com/questions/29969931/advanced-mysql-left-join-ifnull-query
'source' 카테고리의 다른 글
MariaDB 10.0 시리즈는 PHP 5.6.10과 호환됩니까? (0) | 2023.09.02 |
---|---|
MariaDB TX(엔터프라이즈) 대 무료 차이점? (0) | 2023.09.02 |
CSS 선택기("A 또는 B) 및 C")? (0) | 2023.09.02 |
수식이 아닌 텍스트/데이터가 있는 필드만 카운트 (0) | 2023.09.02 |
함수 내부의 전역 변수에 액세스할 수 없습니다. (0) | 2023.09.02 |