mysql - Magento/Zend 框架 : Custom Join Statement : ERROR : Can't prepare expression when tableName is instance of Zend_Db_Expr

标签 mysql magento join zend-framework

在 Magento v1 中,我尝试添加一个自定义的内部连接,如下所示:

INNER JOIN (SELECT entity_id, LEFT(sku, 11) AS lwin11 FROM catalog_product_flat_1) AS test_lwin11 ON test_lwin11.entity_id = e.entity_id

我尝试使用 新的 Zend_Db_Expr

$select->joinInner(['test_lwin11' => new Zend_Db_Expr('(SELECT entity_id, LEFT(sku, 11) AS lwin11 FROM catalog_product_flat_1)')], 'test_lwin11.entity_id = e.entity_id');

但这会抛出以下错误:

当 tableName 是 Zend_Db_Expr 的实例时无法准备表达式

有什么想法吗?

最佳答案

你可以试试:

$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
$tlw11 = $connection ->select()->from('catalog_product_flat_1', ['entity_id', 'lwin11' => 'LEFT(sku, 11)']);

然后

->join(['test_lwin11' => $tlw11], 'test_lwin11.entity_id = e.entity_id')

关于mysql - Magento/Zend 框架 : Custom Join Statement : ERROR : Can't prepare expression when tableName is instance of Zend_Db_Expr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47790874/

相关文章:

PHP检测输入的时间戳范围是否大于一天

php - Magento权限-我无法通过Magento后端添加任何内容

mysql - 当查询结果表之间没有内容时如何显示 "-"

mysql - 隐藏数据库查询中的第一行

mysql MBRWithin() 具有多个点

mysql - 在 mysql 中连接两个给定的查询集

php - 3 个表的连接查询在 php mysql 中无法正常工作

php - 检查 store_id Magento

php - 可配置产品,选择框 'value' 字段。洋红色

mysql - 在 SQL 中,JOIN 和 CROSS JOIN 有什么区别?