2012-04-16 88 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'); 

我希望它會幫助你