0
我想知道如何选择列。在上面你可以看到我想要写入控制器的sql。但我想以这种方式做到这一点。像其他在magento中的sql语句一样。选择列magento
我试图添加 - >列('o.sku AS SKU'),但这没有奏效。
任何想法?提前致谢!
//sql
$readresult="SELECT o.name AS 'Product', o.sku AS 'SKU', c.entity_id AS 'Order', c.customer_email AS 'Email', c.customer_firstname AS 'Voornaam', c.customer_lastname AS 'Achternaam', c.customer_middlename AS 'Tussenvoegsel', o.product_options AS 'Options', a.telephone AS 'Telefoon', a.postcode AS 'Postcode', a.street AS 'Street', a.city AS 'City', c.increment_id AS 'Bestelnr' FROM magento_sales_flat_order AS c INNER JOIN magento_sales_flat_order_item AS o ON c.entity_id = o.order_id INNER JOIN magento_sales_flat_order_address AS a ON a.parent_id = c.entity_id WHERE o.product_id =".$product." GROUP BY c.entity_id ORDER BY o.sku;";
//THE MAGENTO WAY!
$resource = Mage::getSingleton('core/resource');
$read = $resource->getConnection('core_read');
$o = $resource->getTableName('magento_sales_flat_order');
$o_item = $resource->getTableName('magento_sales_flat_order_item');
$o_address = $resource->getTableName('magento_sales_flat_order_address');
$select = $read->select()->from(array('c'=>$o))
->join(array('o'=>$o_item), 'c.entity_id = o.order_id', array(o.sku AS 'SKU'))
->join(array('a'=>$o_address), 'a.parent_id = c.entity_id', array())
->where('o.product_id', $product)
->group('c.entity_id')
->order('o.sku');
我不调整核心模块,我正在开发一个自定义模块。 我解决了这个问题,现在它工作起来就像我希望它工作。但是,我担心,就像你说的那样,我做错了。我可以看看有什么好的资源来看看它是如何完成的? – 2012-07-10 12:51:38
如果你不知道Magento的基础知识,几乎Magento在网络上的每一个资源都是绝对错误/过时的,或者太难遵循。我发现的唯一真正好的是[这是Mage Dev Fundamentals一周课程的录音](http://www.magentocommerce.com/training/descriptions#fundamentals-of-magento-development)。 – 2012-07-10 13:13:29
另外,我没有说你正在编辑核心模块。我试图说,你应该在非常高的层次上使用Magento的核心功能 - 模型或资源模型。没有比这更深。 :) – 2012-07-10 13:27:46