더 복잡한 쿼리 내부 SELECT :COUNT()와 나는 현재 다음 쿼리 (실제로 간체) 사용하고
SELECT
(
SELECT COUNT(id)
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
+
(
SELECT COUNT(id)
FROM bla_2
WHERE id NOT IN (SELECT id FROM blahhh)
)
as count
누군가가 그것을 언급하기 전에, 나는 bla_1
추가 할 수 있으며, bla_2
가 동일하게 포함되어 있지 않습니다를 비록 단순화 된 질의로 보일지 모르지만 그렇게하는 것이 좋을지도 모른다.
여기서 문제는 두 번째 쿼리에서 계산 된 일부 ID가 이미 첫 번째 ID로 처리된다는 것입니다. 즉, 두 번째 쿼리는 '2'를 반환 할 수 있으며 두 개의 계산 된 행 중 하나는 이미 첫 번째 쿼리에서 계산됩니다. 두 쿼리 내가 두 번 계산하지 않는 공통점이 몇 가지 ID를 갖고 있기 때문에
그래서, 나는 그와 함께 온 :
는SELECT
(
SELECT COUNT(id)
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
+
(
SELECT COUNT(id)
FROM bla_2
WHERE id NOT IN (SELECT id FROM blahhh)
AND id NOT IN (SELECT id
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
)
as count
당신은 알 것이다 번째 내부의 두 번째 하위 쿼리 쿼리은 첫 번째 쿼리와 완전히 동일한 쿼리입니다.
제 문제는 동일한 쿼리를 두 번 실행하지 않고서도 결과를 얻을 수있는 첫 번째 시간과 실제로 그 결과를 검색하는 두 번째 시간을 얻을 수 없다는 것입니다. 당신을 위해 중복을 제거 할 UNION 작업을 사용
나는 그 질문을 삭제하고 싶다. 어쨌든 내 눈을 열어 주셔서 감사합니다. D : D – Pioul