我有这个查询:
->join(array('p'=>'persona'),'u.persona_id=p.id',array('nomp'=> new Zend_Db_Expr("CONCAT(p.nombre, ' ', p.apellidos)")))
我连接(p.nombre
y p.apellidos
)并给它们命名为“nomp”
当我执行“Where”并给它一个“LIKE”时,我会寻找“nomp”列,zend 告诉我该列不存在。
您知道任何其他连接方式。
我有这个查询:
->join(array('p'=>'persona'),'u.persona_id=p.id',array('nomp'=> new Zend_Db_Expr("CONCAT(p.nombre, ' ', p.apellidos)")))
我连接(p.nombre
y p.apellidos
)并给它们命名为“nomp”
当我执行“Where”并给它一个“LIKE”时,我会寻找“nomp”列,zend 告诉我该列不存在。
您知道任何其他连接方式。
你好你可以试试这个
->join(array('us' => 'user_subscriptions'), "user_name" => new Expression("CONCAT(first_name,' ',last_name)"), array('user_end_date' => 'end_date', 'sso_subscription_status' => 'subscription_status'), 'left');
我希望它会帮助你
考虑这个 SQL:
Select x.id, CONCAT(fname,' ',lname) as name
from
(Select 1 as id) x
inner join
(Select 1 as id,"Tom" as fname,"Johns" as lname) p on x.id = p.id
WHERE name = 'Tom Johns'
它类似于您实际生成的内容。join 中的第三个参数是将要为该表添加的主选择列表的一部分。如您所见,变量名称是在选择列表中定义的,因此您不能在 WHERE 中使用它。您的解决方案是将 SQL 更改为类似的内容。
WHERE CONCAT(fname,' ',lname) like 'Tom Johns'