Como usar join, leftJoin, rightJoin en Laravel.

Hola developers, hoy en esta sección vamos a aprender a utilizar los diferentes tipos de joins para relacionar tablas de la base de datos de una forma sencilla en Laravel.

Autor: rogercode. Full stack developer

En laravel podemos utilizar los métodos Join, letfJoin y rightJoin para generar relaciones entre dos o más tablas siempre y cuando las tablas compartan un campo en común.

Cómo puedes usar el método join en Laravel☟.

En este ejemplo, estamos realizando la combinacion entre las tablas cliente, orden y venta en la columna id de la tabla cliente con la columna cliente_id de la tabla orden y la columna cliente_id de la tabla venta. Devuelve todos los registros que cumplan la condicion en ambas tablas. Además se puede especificar que campos de cada tabla necesitamos mediante el método select .

            
              
      use Illuminate\Support\Facades\DB;

      $cliente = DB::table('cliente as c')
      ->join('orden as o', 'c.id', '=', 'o.cliente_id')
      ->join('venta as v', 'c.id', '=', 'v.cliente_id')
      ->select('c.*', 'o.numero_orden', 'v.total_venta')
      ->get();
    
            
          

Cómo puedes usar el método leftJoin en Laravel☟.

En este ejemplo. Estamos realizando una combinación izquierda entre las tablas producto y proveedores en la columna id de la tabla producto y la columna producto_id de la tabla proveedores. El resultado devuelve todos los registros de la tabla producto y cualquier registro que coincida con la tabla proveedores. Si no hay ninguna coincidencia, las columnas de la tabla de proveedores se llenarán con valores NULL.

            
              
      use Illuminate\Support\Facades\DB;

      $users = DB::table('producto as p')
      ->leftJoin('proveedores as pv', 'p.id', '=', 'pv.producto_id')
      ->get();
    
            
          

Cómo puedes usar el método rightJoin en Laravel☟.

En este ejemplo. Estamos realizando una combinación derecha entre las tablas usuario y contacto en la columna id de la tabla usuario y la columna usuario_id de la tabla contacto. El resultado devuelve todos los registros de la tabla contacto y cualquier registro que coincida con la tabla usuario. Si no hay ninguna coincidencia, las columnas de la tabla de usuario se llenarán con valores NULL.

            
              
      use Illuminate\Support\Facades\DB;

      $users = DB::table('usuario as u')
      ->rightJoin('contacto as c', 'u.id', '=', 'c.usuario_id')
      ->select('u.*', 'c.telefono')
      ->get();