如何在Laravel中执行此JOIN查询?

时间:2015-01-31 01:51:18

标签: php sql laravel-4

我试图在laravel查询构建器中加入这个,但它是抛出和错误。我正在使用和Mysql DB。 这是我的sql:

select c.*, d.* from notas_cabecera c
join notas_detalle d on (c.codigo_nota = d.codigo_nota)
where c.codigo_nota in (select r.codigo_nota from reportes r); 

这是我的laravel查询:

$lista_reportes = DB::table('notas_cabecera')
                              ->join('notas_detalle', 'notas_cabecera.codigo_nota', '=', 'notas_detalle.codigo_nota')
                              ->whereIn('notas_cabecera.codigo_nota', function($query)
                              {
                                    $query->select(
                                              DB::table('reportes')->select('reportes.codigo_nota')
                                            );
                              })
                              ->get();

我做错了什么?请帮忙。

1 个答案:

答案 0 :(得分:1)

$lista_reportes = DB::table('notas_cabecera')
                              ->join('notas_detalle', 'notas_cabecera.codigo_nota', '=', 'notas_detalle.codigo_nota')
                              ->whereIn('notas_cabecera.codigo_nota', function($query)
                              {
                                    $query
                                        ->select('reportes.codigo_nota')
                                        ->from('reportes');
                              })
                              ->get();