2012-04-16 86 views
1

我有这个疑问:Zend框架=> CONCAT选择

->join(array('p'=>'persona'),'u.persona_id=p.id',array('nomp'=> new Zend_Db_Expr("CONCAT(p.nombre, ' ', p.apellidos)"))) 

我级联(p.nombreŸp.apellidos),并让他们有 “nomp”

的名字。当我做“在哪里“并给它一个”LIKE“我寻找列”nomp“zend告诉我,该列不存在。

你知道任何其他方式来连接。

+0

你能不能给在其中执行此查询的PHP代码? – Config 2012-04-16 18:52:18

+0

其实你的Concat的方式为我工作 – mrGott 2012-12-23 18:01:00

回答

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' 

它类似于您实际产生。连接中的第三个参数是将为该表添加的主选择列表的一部分。 正如你所看到的,上面的变量名是在选择列表中定义的,因此你不能在WHERE中使用它。你的解决方案是将SQL更改为这样的东西。

WHERE CONCAT(fname,' ',lname) like 'Tom Johns' 
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'); 

我希望它会帮助你