Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/11/2017, 14:52
Avatar de bacc
bacc
 
Fecha de Ingreso: febrero-2009
Ubicación: Argentina
Mensajes: 33
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Consulta Select "compleja"

Hola Leo, gracias por tomarte tu tiempo en responder !

En parte me sirvió, en parte no.

Si analizo la consulta "sola" esta bárbaro y lo solucione quedando asi:
Código MySQL:
Ver original
  1. SELECT *, COUNT(id_padre) as cant
  2.  
  3.  WHERE (id_informatica='1' AND nivel>='1') OR (id_informatica='9' AND nivel>='1')
  4.  GROUP BY id_padre
  5.  HAVING COUNT(cant) >= 2

Peeeero (siempre hay un pero ja) esta consulta es un poco mas complicada y no quería marearlos con toda la consulta; por eso solo puse un pedazo. La consulta completa es esta:

Código MySQL:
Ver original
  1. SELECT DISTINCT(usrs.id)
  2.  FROM usrs
  3.  LEFT JOIN usrs_p1 ON usrs.id= usrs_p1.id_padre LEFT JOIN usrs_p2 ON usrs.id= usrs_p2.id_padre LEFT JOIN usrs_p3 ON usrs.id= usrs_p3.id_padre LEFT JOIN usrs_p4 ON usrs.id= usrs_p4.id_padre LEFT JOIN usrs_p5 ON usrs.id= usrs_p5.id_padre LEFT JOIN usrs_p6 ON usrs.id= usrs_p6.id_padre LEFT JOIN usrs_p7 ON usrs.id= usrs_p7.id_padre LEFT JOIN usrs_p8 ON usrs.id= usrs_p8.id_padre LEFT JOIN usrs_p9 ON usrs.id= usrs_p9.id_padre LEFT JOIN usrs_p10 ON usrs.id= usrs_p10.id_padre LEFT JOIN usrs_p11 ON usrs.id= usrs_p11.id_padre
  4.  WHERE (usrs_p7.id_informatica='1' AND usrs_p7.nivel>='1') AND (usrs_p7.id_informatica='9' AND usrs_p7.nivel>='1')
  5.  ORDER BY usrs.lastlogin DESC LIMIT 50

Son unas 11 tablas anidadas (cada tabla tiene distinto tipo de info). En este caso aplica solo a la tabla p7 (tengo que hacer algo similar para la p6).

Quiero sacarme dos dudas,
1. Es malo, bueno, o da igual que los datos esten distribuidos en distintas tablas ? (para futuros proyectos)
2. Que tan complicado sería llevar lo que me pasaste a esa consulta con JOIN?

En este punto mis conocimientos de MySQL no son tan profundos para saber como "separar" dentro de un JOIN.
Mi fuerte es la programación, así que voy a ver de hacer lo que me dijiste y el validador de COUNT lo hago a través de PHP.

Desde ya mil gracias!!