Yii2查询错误

时间:2015-08-01 19:53:45

标签: php mysql yii2

我在yii2中有这个查询:

SELECT COUNT(*) 
FROM `agencias` 
    LEFT JOIN `responsables` `rsp` 
        ON `agencias`.`responsable` = `rsp`.`responsable_id` 
    LEFT JOIN `receptores` `rec` 
        ON `agencias`.`receptor` = `rec`.`receptor_id` 
WHERE (`nombre` LIKE '%pru%') 
    AND (nombres LIKE "%%" or apellidos LIKE "%%")

但是我得到消息'Column'nombre'in where where where is ambiguous' 我知道如何修复此错误设置where条件的别名,但不知道如何在yii2 activequery中。

所以问题是我如何为where条件设置别名来获取这样的查询:

SELECT COUNT(*) 
FROM `agencias` 
    LEFT JOIN `responsables` `rsp` 
        ON `agencias`.`responsable` = `rsp`.`responsable_id` 
    LEFT JOIN `receptores` `rec` 
        ON `agencias`.`receptor` = `rec`.`receptor_id` 
WHERE (`nombre` LIKE '%pru%') as alias1 
    AND (nombres LIKE "%%" or apellidos LIKE "%%") alias 2

1 个答案:

答案 0 :(得分:2)

您需要在nombre子句中的WHERE字段前加上正确的表别名。假设您根据nombre中的responsables字段进行过滤,那么您的查询应为:

SELECT COUNT(*) 
FROM `agencias` 
    LEFT JOIN `responsables` `rsp` 
        ON `agencias`.`responsable` = `rsp`.`responsable_id` 
    LEFT JOIN `receptores` `rec` 
        ON `agencias`.`receptor` = `rec`.`receptor_id` 
WHERE (`rsp`.`nombre` LIKE '%pru%') 
    AND (`nombres` LIKE "%%" or `apellidos` LIKE "%%")