Php MySQL子查询错误:SQLSTATE[42S21]:
我使用的是Yii 1.1.15,在我的模型中使用Php MySQL子查询错误:SQLSTATE[42S21]:,php,mysql,yii,Php,Mysql,Yii,我使用的是Yii 1.1.15,在我的模型中使用范围在我的查询中得到了一个重复的列名 function scopes () { return array( 'isUsed'=> array( 'alias' => 'd', 'join' => 'JOIN `ads` v', 'condition'=>'d.is_new="0
范围
在我的查询中得到了一个重复的列名
function scopes () {
return array(
'isUsed'=> array(
'alias' => 'd',
'join' => 'JOIN `ads` v',
'condition'=>'d.is_new="0"',
//'group'=>'v.store_id'
),
);
}
它生成这个查询
SELECT COUNT(*) FROM (
SELECT * FROM `store` d
JOIN `ads` v
WHERE ((d.pending!="1") AND (d.is_new="0")) AND (v.store_id IN (6))
) sq
我告诉我这个错误
CDbCommand failed to execute the SQL statement: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id'. The SQL statement executed was: SELECT COUNT(*) FROM (
SELECT * FROM `store` d
JOIN `ads` v
WHERE ((d.pending!="1") AND (d.is_new="0")) AND (v.store_id IN (6))
) sq
你知道谁来解决这个问题吗?谢谢这是因为子查询中的列不明确
在子查询中,应该使用特定的列名称,而不是* 请参考以下示例:
SELECT COUNT(*) FROM (
SELECT d.columnName,v.columnName,.... FROM `store` d
JOIN `ads` v
WHERE ((d.pending!="1") AND (d.is_new="0")) AND (v.store_id IN (6))
) sq
我不确定你的情况是否会有帮助!!添加'select'=>'d.*,v.*'因为您只计算行,所以静态的
select
值也会起作用,例如select 1
@vijay4vijju会得到相同的值error@vijay4vijjuCDbCommand无法执行SQL语句:SQLSTATE[42S21]:列已存在:1060重复的列名“id”。执行的SQL语句是:SELECT COUNT(*)FROM(SELECT d.*,v.*。
@vijay4vijju nevermind,只将我需要的字段添加到SELECT
中,它工作了。感谢您的提示