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

Una de subconsultas

Estas en el tema de Una de subconsultas en el foro de Mysql en Foros del Web. Hola de nuevo (ando batallando con mysql jeje) Tengo una duda respecto a subconsultas... Les explico. Tengo esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código mysql: Ver original ...
  #1 (permalink)  
Antiguo 23/10/2009, 11:52
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Una de subconsultas

Hola de nuevo (ando batallando con mysql jeje)

Tengo una duda respecto a subconsultas...

Les explico. Tengo esta consulta:

Código mysql:
Ver original
  1. SELECT id_promotor, users_fullname, estado_promotor, (SELECT COUNT(*) FROM ew_p_visitas WHERE id_promotor=10) as visitas, (SELECT COUNT(*) FROM ew_p_metas, ew_p_personasconvencidas WHERE meta_id=persona_convencida_meta_id AND promotor_id=10) as personasCon FROM ew_promotores, ew_users WHERE ew_promotores.candidato_id=18 and ew_users.users_id = ew_promotores.users_id ORDER BY users_fullname

Me arroja resultados como estos:

Código:
id_promotor - users_fullname - estado_promotor - visitas - personasCon
10 - Alguien - 0 - 498 - 8
12 - Otro Alguien - 0 - 498 - 8
1   - Alguien Mas - 0 - 498 - 8
11 - Ultimo Alguien- 0 - 498 - 8
Si se fijan, en las subconsultas, siempre está el número 10. Ahí va mi pregunta, como hago para que tome el campo "id_promotor" ( es el primer campo de la consulta )??? Osea, en vez de colocar un 10 fijo, colocar el campo "id_promotor" para que me arroje el conteo de las visitas y las personas de cada usuario respectivamente.

Si logramos lo anterior, me deberían quedar registros así:

Código:
id_promotor - users_fullname - estado_promotor - visitas - personasCon
10 - Alguien - 0 - 498 - 8
12 - Otro Alguien - 0 - 250 - 50
1   - Alguien Mas - 0 - 300 - 30
11 - Ultimo Alguien- 0 - 401 - 3
Espero me hayan entendido...

Gracias de antemano
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 23/10/2009 a las 11:57
  #2 (permalink)  
Antiguo 23/10/2009, 12:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Una de subconsultas

Puedes usar el nombre de la tabla y el campo dentro de la subconsulta:
Código MySQL:
Ver original
  1.     (SELECT COUNT(*) FROM ew_p_visitas v WHERE v.id_promotor = p.id_promotor) as visitas
  2.     ew_promotores p
  3.     ew_users u
  4.     u.users_id = p.users_id
  5.     p.candidato_id = 18
  6.     users_fullname;
Omití los demás campos ya que no hacen falta para el ejemplo. Fíjate que usé JOIN en lugar de unir las tablas en el WHERE, ya que es mejor en cuestión de rendimiento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 24/10/2009, 10:31
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Respuesta: Una de subconsultas

Listo David! Muchas gracias, era mas simple de lo que pensaba...


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 02:09.