当前位置: 首页 > 面试题库 >

如何在DQL中选择具有MAX(Column value)的行?

戚明朗
2023-03-14
问题内容

我无法在我拥有的symfony2项目中获得此查询。

My Table:

id  course  datetime    numOrden   
---|-----|------------|--------
1  | 1º  | 04/11/2016 | 1   
2  | 2º  | 04/11/2016 | 2
5  | 3º  | 04/11/2016 | 5  
3  | 4º  | 03/11/2016 | 4   
4  | 5º  | 03/11/2016 | 3

我需要获取“ numOrden”列中的值最大的课程(在这种情况下,这将是第三课程)。为此,我在Doctrine2中使用了以下查询:

public function findCourse()
{
    return $this->getEntityManager()->createQuery(
    'SELECT c FROM BackendBundle:Curso c WHERE c.numOrden in (SELECT max(c.numOrden) FROM BackendBundle:Curso )')
    ->getResult();
}

或者

    public function findCourse()
{
    return $this->getEntityManager()->createQuery(
    'SELECT c FROM Bundle:Course c WHERE c.numOrden=(SELECT max(c.numOrden) FROM Bundle:Course )')
    ->getResult();
}

但它显示以下错误:

[Syntax Error] line 0, col -1: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got end of string. (500 Internal Server Error)

问题答案:

尝试在subselect中使用另一个别名,如下所示:

    public function findCourse()
{
    return $this->getEntityManager()->createQuery(
    'SELECT c FROM Bundle:Course c WHERE c.numOrden=(SELECT max(co.numOrden) FROM Bundle:Course co )')
    ->getResult();
}

希望这个帮助



 类似资料:
  • 问题内容: 在将其标记为重复之前,请先看一下此SQLFiddle。 我有这个架构: 子查询: 结果: 现在,这里最棘手的部分是此查询的结果: 这是: 应该是这样的: 您认为查询中有什么问题? 问题答案: 而不是您可以简单地使用相同。也可以改用。 输出: 看到这个SQLFiddle 编辑: 如果要使用它,则必须使用如下子查询: 看到这个SQLFiddle 编辑2: 除了在外部查询中使用之外,您也可以

  • 问题内容: 我的表是: 我需要选择每个包含的最大值。 结果将是: 我试过了: 不起作用 尽管数据库保留187个,但结果集有130行。结果包括的一些重复项。 没有。提供所有记录。 具有各种结果。 问题答案: 你好亲密!您需要做的就是选择住所及其最大日期时间,然后再加入到两个字段的表中:

  • 我需要查询MySql数据库的客户数据。 我有客户表、订单和连接表。 我需要找到最后一次访问-MAX(connection.date_add) 以及订单的总和。 我厌倦了在一个问题中做这件事- 问题是,每个连接的结果有一行,订单数乘以连接数 我通过3次查询解决了这个问题,然后“手动”合并结果 我的问题:是否可以在一个查询中完成?? 我知道在其他SQLdbs中,您可以使用AND语句,但是在MySql中

  • 问题内容: 我想知道是否可以选择列的值(如果该列存在),否则选择null。换句话说,当列不存在时,我想“举起” select语句来处理这种情况。 注意,我正在巩固我的数据模型和设计。我希望在接下来的几周中排除这种逻辑,但是我真的想超越这个问题,因为数据模型修复比我现在想解决的要耗费更多时间。 另请注意,我希望能够在一个查询中执行此操作。所以我不是在寻找像这样的答案 首先检查子查询中的列。然后修改您

  • 问题内容: 这是表结构 我需要一条声明,列出从最近输入的每条消息,我不知道如何执行此操作。谁能指出我正确的方向?提前谢谢。 问题答案: 应该这样做:

  • 问题内容: 我有一个包含以下内容的表: 我想获取每个单个Seller_id的所有最新行。我可以得到这样的最新行: 如何仅获得每个卖方的最新行? 问题答案: 要获取每个Seller_id的最新记录,您可以使用以下查询 使用查询生成器,您可以将其重写为