Laravel 5中的复杂查询

杰拉尔多·贝洛特(Gerardo Belot)

我想将有关KBPHP的旧统计站点迁移到Laravel5。我想知道,Laravel处理该查询的方式是什么?我的意思是,在ActiveRecords上,我必须直接直接手工编写查询,无法处理它。
也许有类似的东西可以在Laravel上写,或者可以用手写的方式!

这是查询:

public function agresiones_get_genero($year){
    $query  = " SELECT tsagredido.id, tsagredido.tsagredido, 
            SUM( IF (agredidos.gen_id = 1, 1, 0) ) m, SUM( IF  (agredidos.gen_id = 2, 1, 0) ) f,
            SUM( IF (agredidos.gen_id = 3, 1, 0) ) l, SUM( IF (agredidos.gen_id = 4, 1, 0) ) n 
            FROM agredidos
            INNER JOIN tsagredido ON agredidos.tsagredido_id = tsagredido.id
            INNER JOIN alertas ON agredidos.alertas_id = alertas.id
            WHERE alertas.anio = $year AND alertas.publicada_id = 1 GROUP BY agredidos.tsagredido_id";
               return $this->find_all_by_sql($query);
    }

将agredidos翻译成被攻击者tsagredidos就像说“被攻击者的职业”

有4个表不涉及,tsagredidos性别agredidos警报

警报是有关agredidos,并agredidos包含关系tsagredidos性别

性别包含男性(m),女性(f),女同性恋,男同性恋,变性人(l)和无(n)选项,而tsagredidos是对agredidos的职业类型列表

并且它们由警报年份的传入变量过滤

http://alertas.clibrehonduras.com/reportes/sujeto_agredido_genero

感谢您的任何帮助。这可能是一个简单的解决方案,但我是Laravel ENV上的一名新手。

阿姆利特GC
Agredidos::join('tsagredido','agredidos.tsagredido_id','=','tsagredido.id')
    ->join('alertas','agredidos.alertas_id','=','alertas.id')
    ->where('alertas.anio',$year)
    ->where('alertas.publicada_id',1)
    ->groupBy('agredidos.tsagredido_id')
    ->get([
        'tsagredido.id,',
        'tsagredido.tsagredido',
        DB::raw('SUM( IF (agredidos.gen_id = 1, 1, 0) ) m'),
        DB::raw('SUM( IF  (agredidos.gen_id = 2, 1, 0) ) f'),
        DB::raw('SUM( IF (agredidos.gen_id = 3, 1, 0) ) l'),
        DB::raw('SUM( IF (agredidos.gen_id = 4, 1, 0) ) n )

    ]);

或者

DB::table('agredidos')->join('tsagredido','agredidos.tsagredido_id','=','tsagredido.id')
    ->join('alertas','agredidos.alertas_id','=','alertas.id')
    ->where('alertas.anio',$year)
    ->where('alertas.publicada_id',1)
    ->groupBy('agredidos.tsagredido_id')
    ->get([
        'tsagredido.id,',
        'tsagredido.tsagredido',
        DB::raw('SUM( IF (agredidos.gen_id = 1, 1, 0) ) m'),
        DB::raw('SUM( IF  (agredidos.gen_id = 2, 1, 0) ) f'),
        DB::raw('SUM( IF (agredidos.gen_id = 3, 1, 0) ) l'),
        DB::raw('SUM( IF (agredidos.gen_id = 4, 1, 0) ) n )

    ]);

这可能对你有用:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel中运行复杂的SQL查询

来自分类Dev

复杂查询3个表,其中2个INNER JOIN,1个子查询,2个By By在Laravel中

来自分类Dev

Laravel Eloquent ORM-查询复杂

来自分类Dev

laravel 5中的搜索查询

来自分类Dev

查询字符串在laravel 5中不起作用

来自分类Dev

laravel中的复杂连接

来自分类Dev

如何使用Laravel 5从相关表中查询条件表

来自分类Dev

如何在Laravel 5中启用查询日志

来自分类Dev

Laravel 5查询生成器中的多个select()

来自分类Dev

Laravel 5查询生成器中存在SQL

来自分类Dev

Laravel查询生成器中的复杂查询

来自分类Dev

Laravel 5查询关系

来自分类Dev

如何在Laravel 5中使SQL联接查询?

来自分类Dev

如何从Laravel 5中的MySQL DB查询返回整数

来自分类Dev

在Laravel 5中建立多对多关系的动态查询

来自分类Dev

如何在Laravel 5中实现MongoDB查询?

来自分类Dev

如何在Laravel 5中转换MongoDB查询?

来自分类Dev

Laravel 5查询缓存

来自分类Dev

Laravel5中查询引擎的本机SQL

来自分类Dev

laravel 5如何查询

来自分类Dev

Laravel雄辩的关于关系的复杂查询

来自分类Dev

laravel中左联接中的复杂查询

来自分类Dev

如何使用Laravel 5从相关表中查询条件表

来自分类Dev

在laravel 5中运行包含除法的mysql查询

来自分类Dev

在laravel 5中查询

来自分类Dev

Laravel查询生成器中的复杂查询

来自分类Dev

从laravel 5中的查询获取月份名称

来自分类Dev

Laravel复杂查询

来自分类Dev

如何在 Laravel 中做复杂的查询 SQL?