今天在分析Magento源代码的时候,在文件app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Config.php 中追踪到下面的函数 getAttributesUsedInListing()
Magento 操作数据库是在 Zend DB(Zend Framework)的基础上简单的做了下封装了。Zend DB 有自己的一套规则,来组合生成最终的SQL查询语句,可以看到上面的代码中有 from() join() joinLeft() where() 等函数,乱七八糟的一大堆东西,需要对 Zend DB的规则非常熟悉,才能知道实际执行的SQL语句,有没有办法直接打印出SQL语句?找了下,还真有,就是assemble()函数。在上面代码中最后部分可以看到。顺被把SQL也附上来: