Zend framework ZEND框架=>;要选择的CONCAT

Zend framework ZEND框架=>;要选择的CONCAT,zend-framework,zend-db,zend-db-table,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.nombreyp.apellidos)并给它们起了一个名为“nomp”的名字 当我做“Where”并给它一个“LIKE”时,我查找列“nomp”,zend告诉我该列不存在 您知道任何其他连接方式。请考虑以下S

我有一个疑问:

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

您知道任何其他连接方式。

请考虑以下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'
考虑以下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'

嗨,你可以试试这个

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

我希望它能帮助你

嗨,你可以试试这个

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

我希望它能帮助你

你能给出执行此查询的PHP代码吗?实际上你的Concat方式对我有效吗?你能给出执行此查询的PHP代码吗?实际上你的Concat方式对我有效