Foros del Web » Programando para Internet » PHP »

MySQL Consulta con dos tablas..

Estas en el tema de MySQL Consulta con dos tablas.. en el foro de PHP en Foros del Web. Hola... Alguien podría ayudarme con esto please. Necesito realizar una consulta que CONTENGA la variable en dos tablas... 1. tengo una tabla llamada "datospersonales" con ...
  #1 (permalink)  
Antiguo 10/06/2003, 00:05
 
Fecha de Ingreso: abril-2003
Mensajes: 150
Antigüedad: 21 años
Puntos: 1
MySQL Consulta con dos tablas..

Hola...

Alguien podría ayudarme con esto please.

Necesito realizar una consulta que CONTENGA la variable en dos tablas...

1. tengo una tabla llamada "datospersonales" con un campo cedula (unico)
2. otra tabla llamada "computadorinfo" con el campo cedula (no unico)

en "datospersonales" es la llave y el "computadorinfo" se supone que es la llave foránea, (aunque MySQL no me deja declararla como tal).

Quiero realizar una búsqueda donde digiten un número por ejemplo y me busque los registros que lo contiene.

Tengo la siguiente búsqueda pero no me funciona adecuadamente.

Código PHP:
$con ="select datospersonales.Cedula, datospersonales.Nombres, computadorinfo.Nombre, 
computadorinfo.Fecha, computadorinfo.CBUbicacion from computadorinfo JOIN datospersonales where 
computadorinfo.Cedula like'%$TCampo%' and datospersonales.Cedula like '%$TCampo%'"

Se supone que me une los datos de las dos tablas, pero me realiza la búsqueda dos o hasta tres veces, me imprime mas registros de los que existen...


Por ejemplo tengo las cédulas:

EN "datospersonales"
33198015
37840248


Y EN "computadorinfo"
33198015
33198015
33198015

37840248
37840248
37840248
37840248
37840248

Es esto lo que necesito ver, pero como explico anteriormente me duplica el resultado y en vez de obtener los 8 registros que empiezan por 3, obtengo 16 registros.

8 de 33198015
y 8 de 37840248

Estoy haciendo algo mal en la consulta??? Alguien ha hecho algo similar??
Les agradezco de antemano su ayuda!!!

Liz
  #2 (permalink)  
Antiguo 10/06/2003, 02:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

creo que tienes un pequeño lio con los join. El JOIN sin mas es como poner tabla1, tabla2 y lo que realiza es combinar cada uno de los registros de tabla1 con todos los registros de tabla2. Lo que tu necesitas es el LEFT (o RIGHT) JOIN, que es de la forma tabla1 LEFT JOIN tabla2 ON (tabla1.campo=tabla2.campo) . La condicion del ON es la condicion que relaciona los registros de ambas tablas, normalmente la clave foranea. Mas info en http://www.mysql.com/doc/en/JOIN.html

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 09:32.