我正在使用ZF2数据库适配器,并在查询中出现以下错误:
未找到列:1054未知的“产品”列
但是“产品”不是列,而是值,那怎么来?
这就是我建立查询的方式:
$select = $this->getGateway()->getSql()->select();
$select->join('keywordlink', 'keywordlink_ref_type = "product" AND keywordlink_ref_id = product_id', ['keyword_count' => new Expression('COUNT(keyword_id)')], Select::JOIN_LEFT);
$select->where(['product_deleted IS NULL']);
$select->group(['product_id']);
顺便说一句,字段keywordlink_ref_id是mysql数据库中的ENUM。
当我自己编写SQL时,它可以工作:
SELECT
product.*, COUNT(DISTINCT keywordlink_keyword_id) AS keyword_count
FROM
adcheck.product
LEFT JOIN
keywordlink
ON
keywordlink_ref_type = "product" AND keywordlink_ref_id = product_id
WHERE
product_deleted IS NULL
GROUP BY
product_id
谢谢
最佳答案
好吧,我不知道为什么它不像以前那样起作用,但是当我移动
keywordlink_ref_type =“产品”
进入where条件:
SELECT
product.*, COUNT(DISTINCT keywordlink_keyword_id) AS keyword_count
FROM
adcheck.product
LEFT JOIN
keywordlink
ON
keywordlink_ref_id = product_id
WHERE
keywordlink_ref_type = "product" AND product_deleted IS NULL
GROUP BY
product_id
关于mysql - ZF2 DB适配器-找不到列:1054未知列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30920519/