我是Laravel的新手,但我想创建这个查询(MySQL):
SELECT
*
FROM
(
SELECT
ce.empresa_id,
CONCAT(ce.nombre, ' ', ce.apellido) AS nombre,
ce.grupo_contable
FROM
cliente_empresa AS ce
UNION
SELECT
cc.empresa_id,
cc.nombre,
cc.grupo_contable
FROM
cuenta_contable AS cc
UNION
SELECT
cci.empresa_id,
cci.grupo_iva AS nombre,
cci.cuenta_contable AS grupo_contable
FROM
cuenta_contables_iva AS cci
) AS cuentasContables
WHERE
cuentasContables.empresa_id = 1
AND (cuentasContables.nombre LIKE '%a%'
OR cuentasContables.grupo_contable LIKE '%%')
查看文档我无法找到正确的方法。谢谢。
答案 0 :(得分:0)
通常,对于ORM无法管理的查询,您可能只想调用\DB::raw
:
$results = \DB::table('users')
->select(\DB::raw(/* your stuff here */))
但是在您的情况下,您可能需要考虑坚持使用ORM。看起来你可能想尝试类似的东西:
$first = DB::table('cliente_empresa')
->where('empresa_id', '=', 1);
$second = DB::table('cuenta_contable')
->where('empresa_id', '=', 1);
$results = DB::table('cuenta_contables_iva')
->where('empresa_id', '=', 1)
->union($first)
->union($second)
->get();
显然,您还需要将SELECT
列语句放在那里。