mysql - Symfony 组合 2 个查询

标签 mysql symfony date doctrine-orm

我想从其他查询插入到当前查询中获取最大日期。请看看我的代码。

数据:

inv_id   inv_date    inv_export   inv_code
1        2016-03-14  0            a2
2        2016-03-13  0            a1
3        2016-04-13  1            a1
4        2016-03-14  0            a1

结果:

for inv_export = 0 return a2 & a1
for inv_export = 1 return a1

mysql(工作正常):

SELECT ..., i.inv_date, i.inv_export
FROM Sp.inventory AS i
...

WHERE i.inv_date IN (
    SELECT max(i.inv_date) from Sp.inventory WHERE i.inv_export = 1
);

我试过将它转换为 symfony:

$qb = $this
  ->createQueryBuilder('i')
  ->select('..., i.invDate')
  ...

  ->where('i.invExport = :export AND i.invDate = MAX(i.invDate)')
  ->setParameter('export', $export);

最佳答案

您可以按如下方式使用子查询:

$sub = $this->createQueryBuilder('i2');
$sub->select("max(i2.inv_date)");
$sub->where("i.invExport= i2.invExport");


$qb = $this
  ->createQueryBuilder('i')
  ->select('..., i.invDate')
  ...
   ->where('i.invDate = ( '.$sub->getDQL().' )');
  ->andWhere('i.invExport = :export')
  ->setParameter('export', $export);

希望对你有帮助

关于mysql - Symfony 组合 2 个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36601785/

相关文章:

mysql - 如何恢复/更改 MySQL 密码

php - 刷新页面空记录自动插入数据库

MySQL:如何引用同一个表上的两列?

forms - Symfony2 在错误页面上包含表单(404)

mysql - 在 Mysql 的日期类型中存储非公历日期

sql - 如何为每个id创建长度等于id长度的不同日期序列?

android - 从时间戳到日期 Android

mysql - 双向加密+查找?

symfony - FOSUserBundle 理解 twig 模板变量

javascript - Symfony:Webpack Encore Require()无法正常工作吗?