Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

varios where a la misma tabla

Estas en el tema de varios where a la misma tabla en el foro de Mysql en Foros del Web. hola chicos soy nueva en el foro y aun estoy muy verde en msql alguien me podria decir como hacer esta consulta a la misma ...
  #1 (permalink)  
Antiguo 14/02/2012, 09:25
 
Fecha de Ingreso: febrero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
varios where a la misma tabla

hola chicos soy nueva en el foro y aun estoy muy verde en msql

alguien me podria decir como hacer esta consulta a la misma tabla toda de una vez


-contar todas las fotos que tiene el ususario juan
SELECT COUNT(usuario) FROM fotos where usuario = 'juan'

-saber si el usuario juan tiene alguna foto que en el 'titulo' sea igual a 'hola'
SELECT titulo FROM fotos where usuario = 'juan' and titulo='hola'

-buscar la foto que tiene una X
SELECT ruta_imagen FROM fotos where fto_perfil = 'X' and usuario = 'juan'

Última edición por lore1355; 14/02/2012 a las 09:51
  #2 (permalink)  
Antiguo 14/02/2012, 09:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: varios where a la misma tabla

Que dos consultas (o más) puedan realizarse sobre la misma tabla no implica necesariamente que las condiciones del WHERE sean compatibles entre si.
Sólo las dos últimas mas o menos puedes juntarlas en una sola consulta. La primera es incompatible con las otras porque todo COUNT() requiere agrupamiento, y el agrupamiento es incompatible con un listado detallado por títulos o fotos, a menos que quieras contar las variaciones de cada uno de ellos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/02/2012, 10:03
 
Fecha de Ingreso: febrero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: varios where a la misma tabla

interesante lo que comentas, pero sigo estando en blanco, igual que antes
el problema es que no se juntarlas
  #4 (permalink)  
Antiguo 14/02/2012, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: varios where a la misma tabla

No puedes juntarlas, porque lo que buscas es incompatible entre ellas.
Vamos por partes:
- Contar registros implica que cuentes la catidad total de las fotos que tiene "Juan". Pero eso incluye tanto las fotos que tienen "X", como las donde el título es "Hola".
- SI las agrupas discriminando por foto, se contará una por cada foto distinta que haya, pero juntará una o más fotos sin importar su título.
- Si agrupas portítulo, te contará por separado cada título distinto que haya.
- Si agrupas por ambos, puedes terminar teniendo cada vez 1 en la cuenta.
- SI además de agrupar por título y foro, seleccionas sólo los "X" en fotos y también los que llevan "Hola" en el título, además de contar dos veces la misma foto, no obtendrás el total de las fotos, sino sólo las que cumplen el criterio.
- Si agrupas seleccionando las del título "Hola", puedes perder las que tengan "X" en Foto, porque puede que no todos los casos de "Hola", tengan "X", y viceversa.

Creo que esto ya te da una idea: Para realizar un reporte tal que cuente todas las cosas que necesitas, deberás hacer una consulta bastante compleja. Esta consulta tedrá varios INNER JOIN, subconsultas y UNIONs, necesarios para recabar toda la información y evitar inconsistencias lógicas en los WHERE.

¿Se va entendiendo?

Lo básico: Para poder hacer un sólo where que abarque las cosas, las condiciones deben ser compatibles para el mismo resultado.
Sino, estás sumando caballos con manzanas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/02/2012 a las 04:32
  #5 (permalink)  
Antiguo 15/02/2012, 02:22
 
Fecha de Ingreso: septiembre-2011
Ubicación: España
Mensajes: 118
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: varios where a la misma tabla

no hay nadie que sepa hacer dicha consulta de una vez, asi no tener que hacer 3 consultas a la base de datos
  #6 (permalink)  
Antiguo 15/02/2012, 05:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: varios where a la misma tabla

Cita:
Iniciado por diegohugogallego Ver Mensaje
no hay nadie que sepa hacer dicha consulta de una vez, asi no tener que hacer 3 consultas a la base de datos


Me quedé con la duda. ¿La tuya es una pregunta o una afirmación?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/02/2012, 05:42
 
Fecha de Ingreso: septiembre-2011
Ubicación: España
Mensajes: 118
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: varios where a la misma tabla

una pregunta

no hay nadie que sepa hacer dicha consulta de una sola vez, asi no tener que hacer 3 consultas a la base de datos ????
  #8 (permalink)  
Antiguo 15/02/2012, 06:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: varios where a la misma tabla

No es posible hacer la consulta y lograr lo que pretende, porque las condiciones que pide en cada una se vuelven incompatibles con las otras.
¿Eso lo entiendes?
Lo que parece ser es que quiere lograr generar un reporte con varios tipos de datos, todos los cuales se deben calcular por separado para poder lograrlo.
Si lo que pretende es lograr un resumen, y quiere hacerlo con una única consulta, se debe compatibilizar las diferentes consultas en una sola operación, pero eso implicaría una consulta de una enorme complejidad, no apta para principiantes.
En esencia, lo que quiere es lo que se hace con OLAP (que es una forma de análisis y no un programa), pero lo quiere hacer con SQL básico puro... y eso no es sencillo.

¿Lo vas entendiendo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.