【问题标题】:Concat_ws in propel推进中的 Concat_ws
【发布时间】:2014-01-23 10:40:50
【问题描述】:

如何修改我的推进查询以获得与以下 MySQL 查询相同的结果?

SELECT v.id,CONCAT_WS(" ",b.name,v.model) AS car_name
FROM vehicle v
JOIN account_vehicle av ON av.account_id=:uid
LEFT JOIN brands b ON b.id=v.manufacturer
WHERE av.vehicle_id=v.id

现在我有类似的东西

$query = VehicleQuery::create('v')
->joinAccountVehicle('av')
->leftJoinBrands('b')
->select(array('v.Id', 'b.Name', 'v.Model'))
->where('av.VehicleId=v.Id')
->find();

如何修改推进器的使用 - 以获得相同的结果?我在使用 propel 中的 concat_ws 函数时遇到了困难。 我尝试使用 Criteria 模型 - 但我无法添加连接表(条件需要 TABLEPEER:COLUMN_NAME 并拒绝我的别名)

【问题讨论】:

  • 以下问题可能会有所帮助:How to use MySQL functions in Propel.
  • hmmm 填充对象也不是正确的方法,什么时候使用它 - 我失去了使用活动查询的所有好处。

标签: php mysql propel


【解决方案1】:

试试这样的:

$query = VehicleQuery::create('v')
->joinAccountVehicle('av')
->leftJoinBrands('b')
->select(array('v.Id', 'b.Name', 'v.Model','CONCAT_WS(" ",b.name,v.model) AS car_name'))
->where('av.VehicleId=v.Id')
->find();

【讨论】:

  • 查看与您的 MySQL 服务器版本相对应的手册,以获得在 'AS "CONCAT_WS(" ",b.name,v.model) AS car_name" FROM vehicle INNER JOIN 附近使用的正确语法'accoun' at line 1' 如您所见 - 这个 concat_ws 被视为别名
猜你喜欢
  • 1970-01-01
  • 2011-05-14
  • 2021-09-28
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
相关资源
最近更新 更多