• Martes 7 de Mayo de 2024, 03:21

Autor Tema:  Consultar En Dos Tablas Al Mismo Tiempo  (Leído 3029 veces)

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Consultar En Dos Tablas Al Mismo Tiempo
« en: Miércoles 16 de Mayo de 2007, 19:09 »
0
hola estimado aqui haciendo muchas consultas.

   como puedo hacer una consulta a dos tablas y que si un cosa se encuentra en ambas me diga ok y si no me diga no corresponde, no se mucho de esto pero igual les dejo la inquetud mia igual buscare algo a ver que encuentro,
saludos y gracias,
neo.
Un Tigre Nunka Kambia Sus Rayas

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #1 en: Miércoles 16 de Mayo de 2007, 22:57 »
0
Estás en el foro incorrecto. Tu duda es de SQL.-
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #2 en: Jueves 17 de Mayo de 2007, 06:06 »
0
no seria tan facil que hicieras una consulta en una tabla primero y verificara si el dato que buscas lo encontro, sino fue asi busque en la otra?? lol  :scream:

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #3 en: Jueves 17 de Mayo de 2007, 07:56 »
0
Tambien hay unas instrucciones en SQL

esta:
Exists tambien esta  
IN

te puede ser de utilidad, Apoyandote en subconsultas tambien

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #4 en: Jueves 17 de Mayo de 2007, 15:51 »
0
Es cierto olvidaba las subconsultas :P sorry :whistling:

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #5 en: Jueves 17 de Mayo de 2007, 16:45 »
0
Con esto buscas las coincidencias entre ambas tablas

Citar
SELECT * FROM tabla1
INNER JOIN tabla2 ON ( tabla1.columna1 = tabla2.columna2 )


Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #6 en: Jueves 17 de Mayo de 2007, 17:54 »
0
Cita de: "Altareum"
Con esto buscas las coincidencias entre ambas tablas

Citar
SELECT * FROM tabla1
INNER JOIN tabla2 ON ( tabla1.columna1 = tabla2.columna2 )


Altareum.
Pero a lo que entendí, quiere saber si está en una tabla o en las 2, con eso solo ves si existe en las 2.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #7 en: Viernes 18 de Mayo de 2007, 15:34 »
0
hola que tal gracias a todos por su ayuda, y bueno aun creo que no encontre bien mi solucion, espero hacerlo pront pero mas o menos ya tengo la idea gracias,
saludos,
neo.
Un Tigre Nunka Kambia Sus Rayas

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #8 en: Viernes 18 de Mayo de 2007, 16:21 »
0
Citar
que si un cosa se encuentra en ambas me diga ok

Por lo que entendí, es si está en ambas tablas, no en una y luego en otra...

En todo caso neorent, da un ejemplo de los datos que tienes, y qué resultado necesitas.

Altareum
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #9 en: Viernes 18 de Mayo de 2007, 16:51 »
0
Estimado Altareum:

tengo dos tablas
tabla1(1000 registros)
tabla2(1 registro)
cada una contiene diferentes campos pero solo hay 2 que son iguales en ambas tablas

tabla1.username
tabla1.pass

tabla2.username
tabla2.pass

cuando ingrese un usuario a la pagina y le solicite el nombre de usuario y password devera verificar en las tablas 1 y 2 si el usuario se encuantra, de no encontrarse en la tabla2 debe ser dirigido a una pagina x de no encontrarse en la tabla1 debe ser reenviado al idex del sitio nuevamente pidiendo usuario y password y si estuviese en ambas tablas mandarlo a otra pagina por ejemplo portal.php tengo un code pero no creo que este funcionando bien espero me puedan ayudar,
saludos,
neo.
Código: Text
  1.  
  2. $conn = mysql_connect("localhost", "root", "");
  3. mysql_select_db("internet_db",$conn);
  4. $ssql = "SELECT * FROM usuarios WHERE nombre='$usuario' and passw='$clave'";
  5. $sql="SELECT * FROM inscrito WHERE username='$usuario' and clave='$clave'";
  6. $rs = mysql_query($ssql,$conn);
  7. $rs2= mysql_query($sql, $conn);
  8. if (mysql_num_rows($rs)!=0)
  9.   {
  10.       $autentificado = "SI";
  11.     if (mysql_num_rows($rs2)!=0)
  12.       {
  13.         echo "<script> top.location.href='inscripcion.php'; </script>";
  14.       }
  15.     else
  16.       {
  17.       echo "<script> top.location.href='portal.php'; </script>";
  18.       }
  19.   }
  20. else
  21.   {
  22.     $autentificado = "NO";
  23.     echo "<script> top.location.href='index.php'; </script>";
  24.   }
  25.  
  26.  
Un Tigre Nunka Kambia Sus Rayas

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #10 en: Lunes 21 de Mayo de 2007, 17:12 »
0
Citar
SELECT tabla1.username,  tabla2.username
FROM tabla1
LEFT JOIN tabla2 ON ( tabla1.username = tabla2.username )
WHERE tabla1.username = "$usuario" AND tabla1.pass = "$clave"

De esta forma, si no hay registros en tabla 2 el segundo campo traerá NULL, y si no existe en tabla 1 no dará resultados.

Asumo que las claves en ambas tablas son la misma, o mejor dicho, que los registros son de tabla2 corresponden al mismo usuario que en tabla1, sin necesidad de chequear que las claves sean iguales, en todo caso, usa esto:
Citar
LEFT JOIN tabla2 ON ( tabla1.username = tabla2.username AND tabla1.pass = tabla2.pass )

Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #11 en: Martes 22 de Mayo de 2007, 16:40 »
0
Altareum:

muchas gracias por tu ayuda y guia bueno yo hice lo siguiente y quisiera saber pk me da el siguiente error este es el code:

Código: Text
  1.  
  2. <?php
  3. $usuario=$_POST['usuario'];
  4. $clave=$_POST['clave'];
  5. echo"$usuario, $clave";
  6.  
  7. $conn = mysql_connect("localhost", "root", "");
  8. mysql_select_db("internet_db",$conn);
  9. $ssql = "SELECT * FROM usuario WHERE nombre='$usuario' and passw='$clave'";
  10. $sql="SELECT * FROM inscrito WHERE username='$usuario' and clave='$clave'";
  11. $rs = mysql_query($ssql,$conn);
  12. $rs2= mysql_query($sql, $conn);
  13. if (mysql_num_rows($rs)!=0)
  14.   {
  15.       $autentificado = "SI";
  16.     if (mysql_num_rows($rs2)!=0)
  17.       {
  18.         echo "<script> top.location.href='portal/index.php'; </script>";
  19.       }
  20.     else
  21.       {
  22.       echo "<script> top.location.href='inscripcion.php?user=$usuario&pass=$clave'; </script>";
  23.       }
  24.   }
  25. else
  26.   {
  27.     $autentificado = "NO";
  28.     echo "<script> top.location.href='index.php'; </script>";
  29.   }
  30. mysql_free_result($rs);
  31. mysql_close($conn);
  32. ?>
  33.  
  34.  

y me da el siguiente error:
Código: Text
  1.  
  2. user, pass
  3. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\easyphp1-8\www\validar.php on line 13
  4.  
  5.  

me podrian ayudar nuevamente a ver en que estoy mal?, gracias,
saludos,
neo.
Un Tigre Nunka Kambia Sus Rayas

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #12 en: Martes 22 de Mayo de 2007, 18:42 »
0
lo que pasa es que $rs no es un Resultset valido la consulta no te esta devolviendo resultados

yo lo haria de esta manera:

Código: Text
  1. SELECT u.* ,(SELECT i.usuario FROM inscritos i where i.usuario=u.usuario) EnTabla2 FROM usuarios u WHERE u.usuario='$usuario'
  2.  


si el campo 'EnTabla2' devuelve NULL es que no esta en la tabla 2, si la consulta no devulve registros no esta en la Tabla 1

aunque supongo que si no esta en la tabla 1 no esta en la 2  :unsure: :P


yo te aconsejo que no busques las contraseñas a traves de SQL

Código: Text
  1. "SELECT * FROM usuario WHERE nombre='$usuario' and passw='$clave'";
  2.  

Mejor toma  el resultado y compara aparte...


Código: Text
  1. $rs = mysql_query("SELECT nombre,password FROM usuario WHERE nombre='$usuario'",$conn);
  2. $pass=mysql_fetch_row($rs);
  3. $pass=$pass[1]
  4.  
  5. if ($pass[1] == $clave)
  6.   {
  7.    .....
  8.   }
  9.  
  10.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Consultar En Dos Tablas Al Mismo Tiempo
« Respuesta #13 en: Martes 22 de Mayo de 2007, 20:57 »
0
estimados todos debo un gran disculpa

el error era que consultaba en la tabla usuario y realmente era usuarios pero bueno son cosas que pasan y agradesco la ayuda de todos ustedes muchisimas gracias se pasaron,
saludos,
neo.
Un Tigre Nunka Kambia Sus Rayas