php - 左连接字段为空时后端返回错误
问题描述
我有一个返回公司详细信息的查询,但是如果用于左连接的字段为空,则查询返回错误。如何解决这个问题?
我试过了,
->leftJoin('company.field1', 'field1')
->leftJoin('company.field2', 'field2')
->andWhere('company.field1!= :empty')->setParameter('empty', serialize([]))
->andWhere('company.field2!= :empty')->setParameter('empty',
serialize([]));
这将只返回所有具有非空字段 1 和字段 2 的公司。但我希望所有具有空/非空字段 1 和字段 2 的公司。此字段字段 1 和字段 2 不是从前端添加的强制字段。
解决方案
LeftJoin
接受空值。
$queryBuilder
->leftJoin('company.field1', 'field1')
->leftJoin('company.field2', 'field2')
->where('company.field1 is null')
->andWhere('company.field2 is null');
这将返回仅 field1 和 field2 为空的所有公司。(这两个字段必须为空才能返回)。
(也许您应该尝试使用=
而不是关键字is
)
推荐阅读
- xamarin.forms - 如何找出在 VS2019 的输出窗口上打印的事件?
- android - 在 Kotlin 中使用 API 端点
- r - R:如何在 R 中的两个重复项之间包含一个字符?
- common-lisp - 在 SBCL 中为自定义散列表定义散列函数
- bash - Bash脚本如何将数组元素与字符串进行比较
- geolocation - 使用python和谷歌地图API的坐标之间的地理编码距离
- python - TensorFlow 新手并尝试将新数据集 (oxford_flowers102) 添加到 TensorFlow,但未成功
- c - 从 1 到 N 的丰富数的计数
- php - 2021 年是否有支持 php 和 Azure 应用洞察的故事?
- task - TaskJuggler 不会在具有修复结束日期的任务之前执行并产生错误