Mostrando entradas con la etiqueta Cómo usar subquery. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cómo usar subquery. Mostrar todas las entradas

viernes, 14 de julio de 2017


En este tutorial, le haré saber cómo escribir subquery dentro de la instrucción select en Laravel 5. Laravel permite a los usuarios escribir una consulta sin usar el DB::raw() método.

Caso de uso de una sub consulta en Laravel

En algún momento necesitamos desarrollar la aplicación donde necesitamos obtener detalles de usuario con sus seguidores como la aplicación "Instagram".

Laravel 5.4

En la aplicación Instagram al visitar el perfil de usuario, verá el número total de publicaciones, sus seguidores y la cuenta siguiente.

En este escenario, podemos escribir una función mysql o usar subconsulta en la instrucción select.

Para este ejemplo, tendré dos tablas users y user_followers .

Supongamos que la tabla de users tiene campos id, name, email y la tabla user_followers tiene id, user_id, follower_id.

Primero utilizaré la consulta en bruto de MySQL para obtener detalles de la siguiente manera:


SELECT 
 users.*, 
 (SELECT count(*) FROM user_followers
   WHERE user_followers.user_id = users.id
  ) as total_followers
FROM `users``

Laravel Query Builder (Generador de consultas)

Ahora escribiré la consulta en Laravel para lograr la misma funcionalidad.


  $datos = \DB::table("users")
          ->select("users.*",
                  \DB::raw("(SELECT count(*) FROM user_followers
                          WHERE user_followers.user_id = users.id
                        ) as total_followers"))
          ->get();
  dd($datos);    

Puede escribir la subconsulta con instrucción join.



Category: articles