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

consulta multitabla mysql

Estas en el tema de consulta multitabla mysql en el foro de Mysql en Foros del Web. Hola soy nuevo en el foro y espero q este sea el primero de muchos post... recien estoy empezando en este mundo maravilloso bueno tengo ...
  #1 (permalink)  
Antiguo 09/11/2010, 17:13
 
Fecha de Ingreso: noviembre-2010
Ubicación: La Reina, Santiago, Chile
Mensajes: 11
Antigüedad: 9 años, 1 mes
Puntos: 0
consulta multitabla mysql

Hola soy nuevo en el foro y espero q este sea el primero de muchos post... recien estoy empezando en este mundo maravilloso

bueno tengo 2 tablas:

tabla registro: (id, usuario, nombre, apellido,edad, mail, fono, region)

tabla comunas: (id, usuario, comuna1, comuna2, comuna3, comuna4, comuna5, comuna6)

la id, y el usuario son los mismos en ambas tablas

lo que yo quiero es que uno pueda elegir una comuna, y me devuelva:

comuna1, comuna2, comuna3, comuna4, comuna5, comuna6 de la tabla comuna y
id, usuaro y nombre de la tabla registro

lo estoy haciendo con este codigo, pero solo la consulta $comuna me entrega lo que quiero, la consulta $resultado me entrega valores que no quiero


Código PHP:
$comuna mysql_query("select *
                          from comunas
                         where comunas.comuna1='$comuna'
                         or comunas.comuna2='$comuna'                                          
                         or comunas.comuna3='$comuna'
                         or comunas.comuna4='$comuna'
                         or comunas.comuna5='$comuna'
                         or comunas.comuna6='$comuna'
                           "
);
///////////////////////////////////////////////////////////////////////////////////

$resultado mysql_query("select registro.id, registro.nombre, registro.apellido
                          from registro, comunas
                           where   comunas.comuna1='$comuna'
                         or comunas.comuna2='$comuna'
                         or comunas.comuna3='$comuna'
                         or comunas.comuna4='$comuna'
                         or comunas.comuna5='$comuna'
                         or comunas.comuna6='$comuna'
                         and registro.id=comunas.id
                                           "
);
    

    
    
$num_resultados mysql_num_rows($comuna);
    echo 
"<p>Número de resultados encontrados: ".$num_resultados."</p>";
    echo 
"<hr width='95%'>";
        
///////////////////// 
 
for ($i=0$i <$num_resultados$i++)
  {
     
$row mysql_fetch_array($resultado);
     
$comuna69 mysql_fetch_array($comuna);
     
    
     
display_list($row$comuna69); 
    
 }
//cierre del for 


el problema es que por ejemplo yo elijo una comuna que solo la tienen la id=4 y la id=5

y el programa me devuelve 2 resultados:

1) las 6 comunas de la id=4, combinada con el nombre, el apellido y la id de la id=1
2)las 6 comunas de la id=5, combinada con el nombre, el apellido y la id de la id=2


y lo que quiero que me devuelva es:
1) las 6 comunas de la id=4, combinada con el nombre, el apellido y la id de la id=4
2)las 6 comunas de la id=5, combinada con el nombre, el apellido y la id de la id=5

alguna ayuda por favor?
gracias
  #2 (permalink)  
Antiguo 09/11/2010, 18:09
Avatar de Pike  
Fecha de Ingreso: agosto-2008
Ubicación: Por ahí
Mensajes: 251
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: consulta multitabla mysql

Para combinar dos tablas puedes usar inner join
  #3 (permalink)  
Antiguo 09/11/2010, 18:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: consulta multitabla mysql

prueba usando GROUP BY por tu id saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 09/11/2010, 19:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: La Reina, Santiago, Chile
Mensajes: 11
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: consulta multitabla mysql

ya lo solucione... faltaban los parentesis

Código PHP:
//estaba asi:

$resultado mysql_query("select registro.id, registro.nombre, registro.apellido 
                          from registro, comunas 
                           where   comunas.comuna1='$comuna' 
                         or comunas.comuna2='$comuna' 
                         or comunas.comuna3='$comuna' 
                         or comunas.comuna4='$comuna' 
                         or comunas.comuna5='$comuna' 
                         or comunas.comuna6='$comuna' 
                         and registro.id=comunas.id 
                                           "
); 

//y tenia q estr asi 

$resultado mysql_query("select registro.id, registro.nombre, registro.apellido 
                          from registro, comunas 
                           where (  comunas.comuna1='$comuna' 
                         or comunas.comuna2='$comuna' 
                         or comunas.comuna3='$comuna' 
                         or comunas.comuna4='$comuna' 
                         or comunas.comuna5='$comuna' 
                         or comunas.comuna6='$comuna' )
                         and registro.id=comunas.id 
                                           "
); 
saludos

Última edición por sotox69; 10/11/2010 a las 18:38

Etiquetas: multitabla
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:32.