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

seleccionar dos campos en una tabla

Estas en el tema de seleccionar dos campos en una tabla en el foro de Mysql en Foros del Web. Hola amigos, saludos a todos, espero alguien me pueda ayudar si, tengo el siguiente problema, estoy creando un proyecto algo parecido a una ptc pero ...
  #1 (permalink)  
Antiguo 02/11/2013, 11:47
 
Fecha de Ingreso: septiembre-2013
Mensajes: 32
Antigüedad: 10 años, 7 meses
Puntos: 0
seleccionar dos campos en una tabla

Hola amigos, saludos a todos, espero alguien me pueda ayudar si, tengo el siguiente problema, estoy creando un proyecto algo parecido a una ptc pero con matriz estoy estancado en esto:

tengo una tabla llamada tb_users donde guardo los datos de los usuarios y esto es lo que quiero trabaja:

1.referer: que es la persona quien lo refirio

entonces en la cuenta del usuario cuando el quiera ver sus referidos se les mostraran los usuarios que en la tabla tb_users tengan su nick en el campo referer.

Código MySQL:
Ver original
  1. SELECT * FROM tb_users
  2. where referer='$lole'    

Cita:
Editado: Código de programación no permitido en foros de base de DAtos
ok hasta voy bien me muestra los referidos del usuario, pero ahora necesito que tambien muestre los referidos de los referidos es decir un ejemplo y ojala me entiendan

Usuario: Efren tiene 3 referidos

1.Jose
2.maria
3Juan

a el se le muestran sus 3 referidos directos con el codigo que esta arriba, pero ahora quiero que el tambien pueda ver los referidos que tenga

Jose
Maria
Juan

supongamos que:

1.Jose tiene tambien 3 referidos, entoces el usuario efren deberia mirar asi:

usuario: Efren

1.Jose
1.1.Daniel
2.1.Carlos
3.1.Ruben
2.Maria
3.Juan

y en total serian 3 referidos directo de el mas los 3 que tiene Jose : 6 referidos, eso es lo que quiero hacer pero aun no puedo si alguien me ayuda se lo agradezco

Última edición por gnzsoloyo; 02/11/2013 a las 12:09
  #2 (permalink)  
Antiguo 02/11/2013, 12:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: seleccionar dos campos en una tabla

Aunque no ordena como quieres, esto lo hace:
Código MySQL:
Ver original
  1. (SELECT id, refered
  2. FROM tb_users
  3. WHERE referer = 'Efrén')
  4.  
  5. SELECT t2.id, t2.refered
  6. FROM tb_users t2
  7.  
  8. SELECT id, refered
  9. FROM tb_users
  10. WHERE referer = 'Efrén')t3 ON t2.referer = t3.refered)
  #3 (permalink)  
Antiguo 02/11/2013, 16:33
 
Fecha de Ingreso: septiembre-2013
Mensajes: 32
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar dos campos en una tabla

Cita:
Iniciado por jurena Ver Mensaje
Aunque no ordena como quieres, esto lo hace:
Código MySQL:
Ver original
  1. (SELECT id, refered
  2. FROM tb_users
  3. WHERE referer = 'Efrén')
  4.  
  5. SELECT t2.id, t2.refered
  6. FROM tb_users t2
  7.  
  8. SELECT id, refered
  9. FROM tb_users
  10. WHERE referer = 'Efrén')t3 ON t2.referer = t3.refered)
Amigo podrias explicarme mejor lo hice asi y no me muestra nada, por favor si puedes ayudarme en esto te agradeceria, claro si puedes, muy amable al responder, pero como que no lo entendi por que no me muestra nada.
  #4 (permalink)  
Antiguo 03/11/2013, 03:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: seleccionar dos campos en una tabla

Efrén,
nos faltan datos tuyos que he tenido que inventar, como la estructura de tu tabla. Observa los que he probado. Finalmente, solucioné lo del orden creando un campo de orden.


Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `tb_users` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `referer` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  4.   `refered` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  5.   PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ;
  7.  
  8. --
  9. -- Volcar la base de datos para la tabla `tb_users`
  10. --
  11.  
  12. INSERT INTO `tb_users` (`id`, `referer`, `refered`) VALUES
  13. (1, 'Efrén', 'José'),
  14. (2, 'Efrén', 'María'),
  15. (3, 'Efrén', 'Juan'),
  16. (4, 'José', 'Daniel'),
  17. (5, 'José', 'Carlos'),
  18. (6, 'José', 'Rubén'),
  19. (7, 'María', 'Luis');
  20.  
  21.  
  22.  
  23.  
  24. (
  25. SELECT id orden, id, refered
  26. FROM tb_users
  27. WHERE referer = 'Efrén'
  28. )
  29.  
  30. SELECT t3.id orden, t2.id, t2.refered
  31. FROM tb_users t2
  32.  
  33. SELECT id, refered
  34. FROM tb_users
  35. WHERE referer = 'Efrén'
  36. )t3 ON t2.referer = t3.refered
  37. )
  38. ORDER BY orden

La salida es esta (observa que debajo de cada uno van sus referidos). Estos serían los que tienen que ver con Efrén, claro.

orden id refered
1 4 Daniel
1 5 Carlos
1 1 José
1 6 Rubén
2 2 María
2 7 Luis
3 3 Juan

Etiquetas: campo, campos, registro, select, 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 11:10.