php - 将 Sql 查询转换为 Eloquent Laravel 5.6
问题描述
我需要将此 SQL 转换为 Eloquent,因为我需要分页和检索集合,任何人都可以帮助我吗?
'SELECT n.id_norma, n.id_tipo_norma, n.texto_norma, n.fec_norma,r.cod_nodo,
r.articulo, t.desc_tipo_norma, n.desc_norma
FROM normas n, rel_nodo_tem r, tipo_norma t
WHERE r.id_norma = n.id_norma
AND r.id_tipo_norma = n.id_tipo_norma
AND n.id_tipo_norma = t.id_tipo_norma
AND r.cod_nodo = :codNodo
ORDER BY t.desc_tipo_norma ASC, n.fec_norma DESC, n.id_norma DESC'
我试过这个,但我没有正确的结果:
$norms = Norm::join('rel_nodo_tem', 'rel_nodo_tem.id_norma', '=', 'normas.id_norma')
->where('rel_nodo_tem.id_tipo_norma', '=', 'normas.id_tipo_norma')
->where('rel_nodo_tem.cod_nodo', $codNodo)
->join('tipo_norma', 'normas.id_tipo_norma', '=', 'tipo_norma.id_tipo_norma')
->select('normas.id_norma','normas.id_tipo_norma','normas.texto_norma as text_norm','normas.fec_norma','normas.desc_norma', 'tipo_norma.desc_tipo_norma', 'rel_nodo_tem.cod_nodo', 'rel_nodo_tem.articulo')
->orderBy('tipo_norma.desc_tipo_norma', 'asc')
->orderBy('normas.fec_norma', 'desc')
->orderBy('normas.id_norma', 'desc')
->paginate(20);
解决方案
用这个:
->whereColumn('rel_nodo_tem.id_tipo_norma', '=', 'normas.id_tipo_norma')
推荐阅读
- java - BodyInserters.fromObject 已弃用,有什么替代方案?
- javascript - 如何检查电子邮件或电话是否已存在于 mongodb 数据库中
- c - 从 C 语言的结构中访问 char[] 变量
- flutter - 如何将大量数据分配给变量?
- javascript - 如何使用JS查询父支付记录。o查询
- python - 如何检测 BeautifulSoup.find_all 找到的标签是否是搜索字符串中的第一个/最后一个标签?
- javascript - 以函数为参数的 Vue 无限 UI 更新循环
- sql - BigQuery - 根据另一个表中的值删除
- pip - 如何更新 xarray?
- sql - MSSQL 将 .ToString 添加到日期字段