다음 중첩 된 select 문을 CakePHP buildStatement 함수로 수행하려고하는데 아무 소용이 없습니다.CakePHP 중첩 쿼리 : 다른 select 문에서 선택하십시오.
select * from
(
select i.id, i.name Item, sum(t.qty) Total, l.name Location
from transactions t
left join locations l on (l.id = t.location_id)
left join items i on (i.id = t.item_id)
where t.item_id = 855
group by location_id)
filter where total <> 0
일부 전문가가이 문제를 해결할 수 있기를 바랍니다.
부끄러워을 시도해보십시오 :
$subqueryOptions = array(
'fields' => array('Item.id', 'Item.name', 'SUM(Transaction.qty) total', 'Location.name'),
'conditions' => array(
'Transaction.item_id'=>855,
),
'joins'=>array(
'Location',
'Item'
),
'group'=>array(
'Transaction.location_id'
),
'table'=>'transactions Transaction'
);
$db = $this->Transaction->getDataSource();
$subQuery = $db->buildStatement($subqueryOptions, $this->Transaction);
$res = $this->Transaction->find('all', array(
'fields'=>$subQuery,
'conditions' => array('total !='=>0)
));`
을 문을 결과 :
SELECT `SELECT Item.id`, `Item`.`name`, SUM(`Transaction`.`qty`) total, `Location.name
FROM transactions Transaction AS Location Item
WHERE `Transaction`.`item_id` = 855
GROUP BY `Transaction`.`location_id``
FROM `biruni-inventory`.`transactions` AS `Transaction`
LEFT JOIN `biruni-inventory`.`transaction_types` AS `TransactionType`
ON (`Transaction`.`transaction_type_id` = `TransactionType`.`id`)
LEFT JOIN `biruni-inventory`.`item_conditions` AS `ItemCondition`
ON (`Transaction`.`item_condition_id` = `ItemCondition`.`id`)
LEFT JOIN `biruni-inventory`.`locations` AS `Location`
ON (`Transaction`.`location_id`= `Location`.`id`)
WHERE `total` != 0
를 완전히 무관하다!
무엇이 오류입니까? –
남자 나는 심지어 나의 시도를 두는 것을 부끄럽게 생각한다! 편집하고 게시 할 것입니다. – mmahgoub
OK! 나는 내가 여러 가지 잘못을했다고 생각해! 먼저 별명을 잊어 버렸습니다! – mmahgoub