Nueva pregunta

Pregunta:

 
  0  
 
Fecha: 23-05-2021 08:21:25 (En Español)

Subconsulta sql como array.[No resuelta]

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.
Etiquetas: MySQL - PHP - SQL Votos: 0 - Respuestas: 3 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 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!
      Votos: 0 - Link respuesta
     
  •  
      0  
     
    Fecha: 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
      Votos: 0 - Link respuesta
     
  • Fecha: 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!
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com