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

problemas con consulta a 2 tablas

Estas en el tema de problemas con consulta a 2 tablas en el foro de Bases de Datos General en Foros del Web. hola, tengo 2 tablas, Persona y datos_persona Persona id nombre 1 juan 2 ana 3 maria 4 pepe datos_persona id_persona dato valor 1 pais argentina ...
  #1 (permalink)  
Antiguo 27/02/2011, 20:31
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 4 meses
Puntos: 3
problemas con consulta a 2 tablas

hola, tengo 2 tablas, Persona y datos_persona

Persona
id nombre
1 juan
2 ana
3 maria
4 pepe


datos_persona
id_persona dato valor
1 pais argentina
1 piel moreno
1 evento 21 febrero
2 evento 21 febrero
2 piel blanco
...... y asi muchos datos de los usuarios




Necesito llamar a los usuarios que sean de argentina con piel blanca Y evento 15 marzo.


Como lo puedo hacer????
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #2 (permalink)  
Antiguo 28/02/2011, 02:10
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: problemas con consulta a 2 tablas

Código SQL:
Ver original
  1. SELECT *
  2. FROM Persona p
  3. INNER JOIN datos_persona dp1 ON
  4. p.id = dp1.id_persona
  5. INNER JOIN datos_persona dp2 ON
  6. p.id = dp2.id_persona
  7. INNER JOIN datos_persona dp3 ON
  8. p.id = dp3.id_persona
  9. WHERE dp1.dato = 'pais'
  10. AND dp1.valor = 'argentina'
  11. AND dp2.dato = 'piel'
  12. AND dp2.valor = 'blanca'
  13. AND dp3.dato = 'evento'
  14. AND dp3.valor = '15 de Marzo'
  #3 (permalink)  
Antiguo 28/02/2011, 07:58
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: problemas con consulta a 2 tablas

Cita:
Iniciado por Heimish2000 Ver Mensaje
Código SQL:
Ver original
  1. SELECT *
  2. FROM Persona p
  3. INNER JOIN datos_persona dp1 ON
  4. p.id = dp1.id_persona
  5. INNER JOIN datos_persona dp2 ON
  6. p.id = dp2.id_persona
  7. INNER JOIN datos_persona dp3 ON
  8. p.id = dp3.id_persona
  9. WHERE dp1.dato = 'pais'
  10. AND dp1.valor = 'argentina'
  11. AND dp2.dato = 'piel'
  12. AND dp2.valor = 'blanca'
  13. AND dp3.dato = 'evento'
  14. AND dp3.valor = '15 de Marzo'

PERFECTO! , ven comentame algo, Lo que pasa es que es habitual pedir 20 a 30 filtros deveria hacer la misma cantidad de relaciones. Hay alguna forma de hacer esto mas sencillo?
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #4 (permalink)  
Antiguo 28/02/2011, 10:09
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: problemas con consulta a 2 tablas

El problema es como lo tienes diseñado. Si tuvieras una tabla o campos de una tabla con los datos sería mucho más facil y no una genérica con dato-valor.

A mi no se me ocurre una manera más facil tal y como has puesto el modelo, aunque que no se me ocurra no quiere decir que no exista.
  #5 (permalink)  
Antiguo 01/03/2011, 06:55
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 4 meses
Puntos: 3
Respuesta: problemas con consulta a 2 tablas

Cita:
Iniciado por Heimish2000 Ver Mensaje
El problema es como lo tienes diseñado. Si tuvieras una tabla o campos de una tabla con los datos sería mucho más facil y no una genérica con dato-valor.

A mi no se me ocurre una manera más facil tal y como has puesto el modelo, aunque que no se me ocurra no quiere decir que no exista.
Que opinas de convertir filas en columnas?

Se me ocurre un DISTINCT a clave que luego convirtiera dicos campos en columnas. Posible en mysql?
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.

Etiquetas: tablas
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 14:20.