Doctrine:如何使用SELECT MIN子查询进行更新?

我有一张用户可以拥有多张照片的照片表.

我正在尝试创建以下查询:

$q = Doctrine_Query::create()
   ->update('Photo p')
   ->set('p.photo_type', 1)
   ->where('p.user_id = ?', $id)
   ->andWhere('p.date_added = (SELECT MIN(p.date_added) FROM Photo p WHERE p.user_id = ?)', $id)

我们的想法是将“photo_type”设置为1,以便为该用户添加最小日期(最早的照片)的特定照片.

我似乎无法正确使用语法.有人能指出我正确的方向吗?

谢谢.

编辑:

根据这个问题的答案(MySQL Error 1093 – Can’t specify target table for update in FROM clause),我似乎正在尝试做一些无法做到的事情.这个问题可以关闭.

最佳答案 试试这个:

$q = Doctrine_Query::create()
   ->update('Photo p')
   ->set('p.photo_type', 1)
   ->where('p.user_id = ?', $id)
   ->orderBy('p.date_added', 'desc')
   ->limit(1);
点赞