symfony - DQL 查询原则不等于返回无结果
问题描述
$query = $em->createQuery('SELECT m FROM App\Entity\Message m JOIN m.rejectedby u WHERE u.id != :user AND m.conversation IS NULL');
$query->setParameter('user',$userid);
这个查询有什么问题?我应该得到结果,但我什么也没得到。
只是将类似的查询与“WHERE u.id = :user”进行比较给出了我期望的结果。User.id 到 m.rejectedby 是多对多的关系。
解决方案
我让它与 QueryBuilder 一起工作。我希望它对有类似问题的人有所帮助。
$qb1 = $this->createQueryBuilder('m');
$qb1
->select('m')
->join('m.rejectedby','u')
->andwhere('u.id = :userid')
->setParameter('userid',$userid)
;
$qb = $this->createQueryBuilder('ms');
$qb
->where($qb->expr()->notIn('ms',$qb1->getDQL()))
->setParameter('userid',$userid)
->andWhere('ms.conversation IS NULL');
推荐阅读
- javascript - 如何在传单中将自定义数据添加到折线?
- swift - ITMS-90809:不推荐使用的 API 使用错误即将到来 - 但我没有在我的应用程序中使用 wkwebview。请帮忙解决这个问题?
- sapui5 - 如何将数据从控制器绑定到 Xml 视图表
- microcontroller - 外部 ADC 会减慢微控制器的速度吗?
- tensorflow - 如何在 Keras 中调用方法作为自定义回调?
- python - Python 中的 .DictWriter() 与 .write() 有什么区别?
- c# - 什么是最好的 http 返回结果类型,并且可以在单行代码语句中返回 HttpResponseMessage
- python-3.x - 如何检查大于5的连续值的最大值
- android - 如何在 Imageview src 中保存数据?
- html - 将 shell 脚本结果转换为 HTML 表格