php - MySQL 子查询错误 : SQLSTATE[42S21]:

标签 php mysql yii

我正在使用 Yii 1.1.15 并在我的模型中使用 scopes 在我的查询中得到一个重复的列名

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

Yii 给我这个错误

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

关于php - MySQL 子查询错误 : SQLSTATE[42S21]:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497617/

相关文章:

java - 数据未与 Elastic Search 6.5.1 同步

php如何在选择下拉列表中显示类别然后显示子类别?

mysql - 如何将数据库中的月份范围与两个日期相匹配?

php - Yii 应用程序中的模块结构

php - 在 Yii 2 的内联验证器中验证多个属性

PHPExcel自动调整列宽

php - MySQL 查询每 60 秒重新启动一次?

javascript - 使用流程图从数据库中检索数据

php - 我可以为我的网站禁用 Google Web Light 吗?

php - Yii 迁移和自定义抽象数据类型