나는 두 개의 테이블이 결합 할 때, 계산 vservers
및 nodes
호출되지 않습니다 :널 값은 두 개의 테이블
vservers
:
vserverid **PK** | nodeid **FK**
1 5
2 6
3 7
nodes
:
nodeid | name | maxvps
5 some_name 4
6 some_name 4
7 some_name 4
가 그렇다면 일부를 vservers
에는 값이 없으므로 PHP를 통해 카운트되거나 페치되지 않습니다.
SELECT nodes.name as name, COUNT(vservers.vserverid) as count_vps ,nodes.maxvps
FROM nodes, vservers
WHERE vservers.nodeid = nodes.nodeid
AND nodes.name LIKE 'some_name%'
GROUP BY name
내 두 번째 방법은뿐만 아니라이 있었다, 그러나 같은 결과를 반환합니다
SELECT nodes.name as name, COUNT(*)- COUNT(vservers.vserverid) as count_vps, nodes.maxvps
FROM nodes, vservers
WHERE vservers.nodeid = nodes.nodeid
AND nodes.name LIKE 'some_name%'
GROUP BY name
을하지만 여전히 같은 결과를 제공 - null 값이 포함되어 있지 않습니다. EDIT : 지금까지 NULL 값이 중요하지 않다는 것을 알았습니다. 따라서 NULL과 실제 값을 모두 계산하는 함수 ISNULL이 있습니다. 문제는 그것을 구현하는 방법을 모른다는 것입니다.
의견이 있으십니까?
내부 조인을하고 있습니다. 대신 왼쪽/오른쪽 조인을 사용해야합니다. 내부 조인 = 레코드는 조인의 두 테이블에 모두 존재해야합니다. 왼쪽/오른쪽 - 레코드는 테이블 중 하나에 있어야하지만 다른 테이블에 반드시 있어야하는 것은 아닙니다. –