我叫Magento系列mymodule/class.我有两个表class,student在我的Magento数据库中.
班级表:
id clas_name
Run Code Online (Sandbox Code Playgroud)
学生表:
id class_id student_name
Run Code Online (Sandbox Code Playgroud)
class_id在student表中是id类表中的外键.
我想制作mymodule/class集合,以便sql如下所示:
select a.*, (select count(id) FROM studetn
WHERE class_id = a.id) as student_count
FROM class a
Run Code Online (Sandbox Code Playgroud)
或者,我想mymodule/class从上面的sql.
怎么做任何建议?
您似乎必须在查询中添加列.在已经有集合的场景中,让我们假设您的$ collection变量如下:
$collection = Mage::getModel("mymodule/class")->getCollection()
Run Code Online (Sandbox Code Playgroud)
所以,你必须修改如下的查询:
$collection->getSelect()->columns(
array(
'student_count' => new Zend_Db_Expr('(SELECT count(id) FROM student WHERE class_id=main_table.id)'
)));
Run Code Online (Sandbox Code Playgroud)
上面的表达式将在您编写时生成查询.
| 归档时间: |
|
| 查看次数: |
11461 次 |
| 最近记录: |