ZendFW를 사용하여 SQL 쿼리를 작성하려고했지만 기능이 제대로 작동하지 않는 것처럼 보입니다. 이것은 내가Zend_Db 하위 쿼리
SELECT tc.trip_title, td.ID, td.trip_id,
(SELECT count(*) FROM 'trips_invites' ti
WHERE ti.destination_id=td.ID AND ti.accepted ='NR') AS "pending_invites"
FROM `trips_current` AS `tc`, `trips_data` AS `td`
WHERE (tc.ID=td.trip_id) AND (tc.creator_id = '1')
ORDER BY `trip_id` ASC
은 내가 알아낼 수 없습니다가 제대로 거기에 그 하위 쿼리를 얻는 방법입니다) (선택 zend_db과 구축을 위해 노력하고있어, 나는 시도 아무것도 작동하는 것 같다 없다 작동하는 쿼리입니다.
도움이 될 것입니다.
감사합니다.
편집/답변 : 나는 다음과 같은 방법으로 쿼리-일 다시 아래 누구도 제안에 따라 유사한 문제가 발생하는 경우 :
ZendFW를 사용하여 나는이 길을 만들어SELECT `tc`.`trip_title`, `td`.`ID`, `td`.`trip_id`, count(TI.ID)
FROM `trips_current` AS `tc`
INNER JOIN `trips_data` AS `td` ON td.trip_id = tc.ID
LEFT JOIN trips_invites AS TI ON ti.destination_id = td.id
WHERE tc.creator_id = 1 AND ti.accepted='NR'
GROUP BY td.id
ORDER BY `trip_id` ASC
:
$select = $this->dblink->select()
->from(array('tc' => 'trips_current'),
array('trip_title'))
->join(array('td' => 'trips_data'),
'td.trip_id = tc.id',
array('ID','trip_id'))
->joinLeft(array('ti'=>'trips_invites'),
'ti.destination_id = td.id',
array('COUNT(ti.id)'))
->where('tc.creator_id =?',1)
->group('td.id')
->order('trip_id');
의견을 보내 주셔서 감사 드리며, MySQL을 사용하고 있습니다 만, 불행히도 내가 찾고있는 결과가 나오지 않습니다. 모든 td.ID에는 ti.destination_id가 관련되어있는 것은 아니며 하위 쿼리를 사용하는 것이 더 좋습니다. 어떤 아이디어? – user387302
대단히 고마워요! 나는 여전히 하위 쿼리에 문제가 있었지만 올바른 쿼리를 생성하는 것으로 보였지만 Zend_Db_Expr을 사용하여 시도했을 때조차도 Zend_Db_Select에 의해 잘못 구분되었습니다. 그래서 나는 그것을 포기했다. 하지만 귀하의 제안 덕분에 하위 쿼리가 필요하지 않게하기 위해 leftjoin/groupby를 사용하는 쿼리를 수정했습니다. 고마워요! 여전히 애플리케이션 로직에 의존하는 쿼리의 다른 부분이 있는데, 이는 내가 zend_db_select를 사용하여 시작하고 싶었던 이유입니다. – user387302
이것은 나를 위해 완벽하게 작동했습니다. array ("trip_title", "($ subquery)"))''array ("trip_title", "($ subquery) as subquery"))'결과를보기 위해서 – Patrioticcow