php - Laravel 查询生成器 Eloquent
问题描述
如何在 Laravel 中进行此查询?
SELECT GS_CONTRATOS.*,GS_ACESSOS.* from GS_CONTRATOS
full outer join GS_ACESSOS on GS_ACESSOS.CONTRATO_ID=GS_CONTRATOS.ID
where EMPRESA_ID='1' and (WEBUSER='ec' or WEBUSER is null)
我得到了一个这样的结果并给了我 0 个结果,我尝试将 2 个 where 与 varius 变量一起使用,但由于我无法同时获得两个 where,所以无法正常工作。我不能解释比这个 bcs 我什至不知道如何进行这个查询
她应该在 GS_ACESSO 和所有 GS_CONTRATOS 中给我所有结果,即使其中一个不存在。
$contratos = Contrato::query()
->join('GS_ACESSOS','GS_ACESSOS.CONTRATO_ID','=','GS_CONTRATOS.ID','full outer')
->where('GS_ACESSOS.WEBUSER','=',$id)->orWhere('EMPRESA_ID','=',$emp)
->get(['GS_CONTRATOS.*','GS_ACESSOS.*']);
解决方案
当你想添加括号时,你必须使用带闭包的 where 条件。你去:
$contratos = Contrato::query()
->join('GS_ACESSOS','GS_ACESSOS.CONTRATO_ID','=','GS_CONTRATOS.ID','full outer')
->where('GS_ACESSOS.WEBUSER', $id)
->where(function ($q) use ($emp) {
$q->where('WEBUSER', 'ec')
->orWhere('EMPRESA_ID', $emp);
})
->get(['GS_CONTRATOS.*','GS_ACESSOS.*']);
推荐阅读
- python - 如何让 pylint 在全局范围内忽略单个模块的未使用导入?
- python - 如何从 SQL Server 表中提取日期并将其存储在 Pandas 的变量中,没有噪音,只有日期
- floating-point - 如何在不使用宏或反复试验的情况下找到用于浮点数的基数
- c# - C# Coverlet 结果始终为空
- pandas - 在 Python/Pandas 中循环通过两个 csv 相同的代码仅适用于其中一个文件
- php - 另一种方法使异步 REST API 与 laravel 没有 ajax
- node.js - 如果我要集成两个单独的 API,那么 MERN 堆栈是否合适?
- google-calendar-api - Google 日历和夏令时的结束
- parsing - Bigquery SEC 归档数据集中似乎缺少数据
- android - 如何解决此错误(正文中是所有必需的信息)