2009-11-17 5 views
1

두 개의 다른 테이블에서 count(*)을 원하고 세 번째 테이블에서 값을두 개의 서로 다른 테이블에서 개수 (*)를 선택하는 것이 적절합니까?

이렇게하려면 다음과 같이하십시오.

테이블 A : select count(*) from TABLE_A where grp_id = 1

select count(*) from TABLE_A where grp_id = 1

테이블 B : select count(*) from TABLE_B where grp_id = 1

테이블 C : select totalcount from TABLE_C where grp_id = 1 and AND UserID = 1

so , 나는이 쿼리 액자 :

select ifnull((select count(*) from TABLE_A where grp_id = 1),0) + ifnull((select count(*) from TABLE_B where grp_id = 1),0) 

할 효율적인 방법이 될 것입니다?

+1

ifnull이 필요하지 않습니다. count = 항상 0이됩니다. –

답변

0

라 메쉬,

나는 그것이 효율적이라고 생각하지만 왜 당신은 서버 측에서 그렇게 할 수 있습니까? 나는이 SQL 쿼리를 작성하는 것이 더 유연 할 것이라고 생각한다.

+0

서버 측에 이미 있습니다. –

+0

@Michael : 나는 C#, PHP, Java에서 웹 페이지 제작에 사용하는 것이 무엇이든 상관 없습니다. – RageZ

+0

음 ... 좋아. "...하지만 서버 쪽에서 왜 그렇게하지 않습니까?" 그는 클라이언트 측 (C#, PHP, Java 등)에서이 작업을 수행하고 있다고 주장합니다. 나는 그의 마지막 쿼리를보고, 그것은 서버 쪽이다. –

1

내 지식은 완전히 좋습니다.

서브 쿼리는 상당한 오버 헤드를 추가하지 않습니다.

관련 문제