New question

Question:

 
  0  
 
Date: 23-05-2021 08:21:25 (In Spanish)

Subconsulta sql como array.[Unresolved]

Buen día.
como hacer una consulta sql que a su vez tenga una subconsulta que trae varios resultados relacionados, por ej: seleccionar las categorias y que como subconsulta traiga todas los tickets relacionado a cada categoria.

Campos:
id
nombre
tickets (resultado de subconsulta, trae todos los tickets relacionado a la categoria)

algo asi, donde en el campo tickets sea un array. actualmente estoy haciendo 2 consultas, traigo las categorias y luego las recorro usando foreach y agrego los tickets a cada categoria.

Hay forma de realizar esto ?

Saludos. Raúl.
Tags: MySQL - PHP - SQL Votes: 0 - Answers: 3 - Views: 9 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 25-05-2021 06:04:44 Hola Rch!

    Lo que puedes hacer es utilizar un join:

    SELECT u.id, u.nombre, t.* FROM users u INNER JOIN tickets t ON t.user_id = u.id;


    No te va a dar exactamente lo que buscas: no te va a generar un array con sub-arrays si no un array grande que contenga todo (Repetidos los datos de los usuarios).

    En SQL no hay forma de hacer lo que buscás, aunque imagino que tu problema viene por el lado de hacer demasiadas consultas (Lo que se llama el problema del N+1).

    Acá te dejo un artículo que escribí con posibles soluciones.

    Saludos!
      Votes: 0 - Link answer
     
  •  
      0  
     
    Date: 25-05-2021 11:12:14 Hola Mauro.
    Gracias por tomarte el tiempo de responder, me aportaste un dato que desconocía "los tiempos de conexión", justamente notaba esa demora cada vez que usaba algo parecido de realizar muchas consultas al recorrer la consulta principal, lei tu articulo, muy interesante, voy a intentar armar mi propia consulta y a tener presente lo de hacer la menor cantidad de consultas, sin importar el procesamiento de los datos post consulta, quería lograr algo como en laravel Category::with('tickets')->get(); . Voy a dejar abierta mientras realizo mis pruebas o si aparece alguna otra propuesta.

    Saludos. Raúl
      Votes: 0 - Link answer
     
  • Date: 31-05-2021 03:16:13 Hola Rch:

    Claro, lo que comentas sobre lo que hace Laravel en realidad debe estar haciéndolo Eloquent (me imagino ya que yo uso Symfony).

    Lo que quiero decir es que ese tipo de construcción está una capa más arriba que pdo, mysqli o similar, es parte de lo que aporta un ORM.

    Saludos!
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In