我试图解决我的问题,因为2小时仍然没有任何解决方案。也许有人会看到我做错了什么。 我想要做的是使用zend框架从数据库中选择行。 这是我想要选择的查询:
SELECT * FROM `products_stock` JOIN `options_stock_values` ON `options_stock_values`.`stock_id` = `products_stock`.`stock_id` WHERE `product_id` = 119
这是一个简单的JOIN,它在phpmyadmin中运行得很完美,但是我的php代码无法以我想要的方式选择它。
$select = $this->entity("ProductsStock")->select();
$select->join('options_stock_values','options_stock_values.stock_id = products_stock.stock_id',array());
$select->where("product_id = ?", $this->stock->product_id);
$select->where("extended = ?", 1);
$rowset = $this->entity("ProductsStock")->fetchAll($select);
return $rowset;
这就是我尝试从数据库中选择行的方法。我从实体中选择了ProductsStock,工作正常。但是当我向我的查询中添加JOIN函数时,它甚至会忽略WHERE语句并给我多行期望一行。
例如 使用没有JOIN的db查询我得到两行(我期待它们),但是当我用options_stock_values表添加JOIN时,它给了我20行没有来自sencond表的列。
它只返回第一个表(ProductsStock)中的20行,而不是ProductsStock与OptionsStockValues连接的两行以及第二个表中的列。
我认为我的PHP代码看起来很好,但也许我做错了吗?任何人都可以帮助我,甚至给我一些小建议吗?
答案 0 :(得分:0)
我建议在select对象中包含FROM子句:
<div id="{{Fire.id}}" my-directive>
如果没有查看您的表格数据,我就不知道您是否会得到您正在寻找的结果,但此代码代表您在问题顶部提供的SQL。