2013-06-12 2 views

답변

3

열입니다.

SELECT DISTINCT count(*) AS count FROM user AS u 
LEFT JOIN details AS d ON 
d.detailsid = u.detailsid; 

가에서() 메서드의 두 번째 인수에서

http://framework.zend.com/manual/1.12/en/zend.db.select.html를 참조하십시오, 당신은 각각의 테이블에서 선택 열을 지정할 수 있습니다. 열을 지정하지 않으면 기본값은 "all columns"[...]에 대한 SQL 와일드 카드 "*"입니다. 단순한 문자열 배열이나 열 별칭과 열 이름의 연관 매핑으로 열을 나열 할 수 있습니다. 쿼리 할 열이 하나 뿐이며 열 별칭을 지정할 필요가없는 경우 배열 대신 일반 문자열로 나열 할 수 있습니다. 보조 노트에

, 당신은 단순히 (위와 같은 페이지) 생산 될지 확인하기 위해 쿼리를 에코 할 수는 SQL 문자열에 개체 선택을 변환

을 - 당신은에 액세스해야하는 경우 Zend_Db_Select 개체에 해당하는 SQL 쿼리의 문자열 표현은 __toString() 메서드를 사용하십시오. 당신이 붙어있어, 그리고 쉽게 SQL 쿼리로 Zend_Db_Select 개체를 설정하려면

0

,이 작업을 수행 할 수 있습니다

echo $select; 

이 디버깅 할 때이 정말 편리합니다. 수를 사용하는

0

당신은 내가 그 당신이 물어 무엇을 추측하고 Zend_Db_Expr

$select->from(array('u'=>'user'),array('count'=> new Zend_Db_Expr("distinct count(*)")) 
       ->joinLeft(
        array('d' => 'details'), 
        'u.detailsid = d.detailsid', 
        array()); 

를 사용해야합니다.

+1

[참조 가이드] (http://framework.zend.com/manual/1.12/en/zend.db.select.html) : * 열 이름에 괄호가 포함 된 경우 Zend_Db_Expr을 사용하면 필요하지 않습니다. ; Zend_Db_Select는 괄호를 인식하고 문자열을 표현식으로 처리하여 인용 및 상관 관계 이름을 건너 뜁니다. * – Gordon

+1

@Gordon 알아두면 좋겠지 만 개인적인 경험으로는 그다지 운이 없었습니다. 나는 항상'Zend_Db_Expr'에'count'를 넣었습니다. 메모를 보내 주셔서 감사합니다. – DevZer0