将带有子select的MySQL查询转换为Zend格式
我想将此MySQL查询转换为Zend格式:将带有子select的MySQL查询转换为Zend格式,mysql,zend-framework,zend-db,Mysql,Zend Framework,Zend Db,我想将此MySQL查询转换为Zend格式: SELECT count_panne, mvt, nextHost, dtmvt, stat FROM ( SELECT COUNT(myTable.snMCB) AS count_panne, myTable.mvt, myTable.nextHost, myTable.dtmvt, myTable.stat FROM myDB.myTable myTab
SELECT count_panne, mvt, nextHost, dtmvt, stat
FROM ( SELECT COUNT(myTable.snMCB) AS count_panne,
myTable.mvt,
myTable.nextHost,
myTable.dtmvt,
myTable.stat
FROM myDB.myTable myTable
WHERE (myTable.dtmvt = calendar__gregorian__today__)
AND (myTable.statut = 'NOOK')
GROUP BY myTable.snMCB) AS myTempTable
WHERE count_panne > 2
ORDER BY count_panne DESC
(附:这是一个正确的mysql句子,带有modifs)
我用Zend尝试了以下方法:
$subSelect = $dbTable->select()
->from($dbTable,array(
'COUNT(myTable.snMCB) AS count_panne',
'myTable.mvt',
'myTable.nextHost',
'myTable.dtmvt',
'myTable.nextHost'))
->where("myTable.dtmvt BETWEEN '$dateDeb' AND '$dateFin'")
->where('myTable.stat = ?', 'NOOK')
->group('myTable.snMCB')
;
$select = $dbTable->select()
->setIntegrityCheck(false)
->from(new Zend_Db_Expr($subSelect),
array('count_panne',
'mvt',
'nextHost',
'dtmvt',
'statut'))
->where('count_panne > 2')
->order('count_panne DESC')
;
它不起作用。您是否尝试过使用db adpater direct with sql来完成此操作,如中所示
$db = $this->getAdapter();
$query = $db->prepare("SELECT count_panne, mvt, nextHost, dtmvt, stat
FROM ( SELECT COUNT(myTable.snMCB) AS count_panne,
myTable.mvt,
myTable.nextHost,
myTable.dtmvt,
myTable.stat
FROM myDB.myTable myTable
WHERE (myTable.dtmvt = calendar__gregorian__today__)
AND (myTable.statut = 'NOOK')
GROUP BY myTable.snMCB) AS myTempTable
WHERE count_panne > 2
ORDER BY count_panne DESC");
$query->execute();
return $query->fetchAll();
您是否尝试过使用db adpater direct和sql进行此操作,如
$db = $this->getAdapter();
$query = $db->prepare("SELECT count_panne, mvt, nextHost, dtmvt, stat
FROM ( SELECT COUNT(myTable.snMCB) AS count_panne,
myTable.mvt,
myTable.nextHost,
myTable.dtmvt,
myTable.stat
FROM myDB.myTable myTable
WHERE (myTable.dtmvt = calendar__gregorian__today__)
AND (myTable.statut = 'NOOK')
GROUP BY myTable.snMCB) AS myTempTable
WHERE count_panne > 2
ORDER BY count_panne DESC");
$query->execute();
return $query->fetchAll();
到底是怎么回事?始终准确地说明您的期望和实际得到的信息,包括任何错误消息。它究竟是如何工作的?始终准确地说明您的期望和实际得到的信息,包括任何错误消息。