1

私はこのクエリを持っています:

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

連結 ( p.nombrey p.apellidos) して、「nomp」という名前の名前を付けます

「Where」を実行して「LIKE」を指定すると、列「nomp」を探します zend は列が存在しないことを教えてくれます。

連結する他の方法は知っています。

4

2 に答える 2

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 の 3 番目のパラメーターは、そのテーブルに追加されるメインの選択リストの一部です。上記のように、変数名は選択リストで定義されているため、WHERE では使用できません。あなたの解決策は、SQLをこのようなものに変更することです。

WHERE CONCAT(fname,' ',lname) like 'Tom Johns'
于 2012-04-24T09:35:01.543 に答える