ZEND FRAMEWORK =>选择CONCAT

时间:2012-04-16 17:08:31

标签: zend-framework zend-db zend-db-table

我有这个问题:

->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”列,并告诉我该列不存在。

你知道其他任何连接方法。

2 个答案:

答案 0 :(得分:0)

考虑这个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'

答案 1 :(得分:0)

嗨,你可以试试这个

 ->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');

我希望它能帮到你