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

Inner Join en dos campos

Estas en el tema de Inner Join en dos campos en el foro de Mysql en Foros del Web. - Buenas espero puedan ayudarme tengo problemas para realizar la siguiente consulta. En primer lugar tengo estas dos tablas. - testaciones ------------------------------------- l CodRegion l ...
  #1 (permalink)  
Antiguo 12/01/2015, 10:39
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 1 mes
Puntos: 0
Inner Join en dos campos

- Buenas espero puedan ayudarme tengo problemas para realizar la siguiente consulta. En primer lugar tengo estas dos tablas.

- testaciones
-------------------------------------
l CodRegion l CodEstacion l DescripEstacion l
l-------------------------------------
l-- REAM --ll-- AM02 --ll-- ABLOQUEA --ll
l-- REAM --ll-- AM03 --ll-- ABLOQUEB --ll
l-- REAM --ll-- AM04 --ll-- ABLOQUEC --ll
l-- REGU --ll-- AS01 --ll-- BBLOQUEA --ll
l-- REGU --ll-- AS02 --ll-- BBLOQUEB --ll
l-- RECE --ll-- AS01 --ll-- CBLOQUEA --ll
l-- REOR --ll-- AS01 --ll-- DBLOQUEA --ll
l-- REOR --ll-- AS02 --ll-- DBLOQUEA --ll
l-- REOR --ll-- AS03 --ll-- DBLOQUEA --ll
----------------------------------------

-tubicacion

--------------------------------------------------
l CodRegion l CodEstacion l CodUbic l DescripEstacion l
l--------------------------------------------------
l-- REAM --ll-- AM02 --ll-- MAMH --ll-- A
l-- REAM --ll-- AM02 --ll-- MCRO --ll-- B
l-- REAM --ll-- AM03 --ll-- MLAB --ll-- C
l-- REGU --ll-- AS01 ---ll-- MLAB --ll-- D
l-- REGU --ll-- AS02 ---ll-- MMCA --ll-- E
l-- RECE --ll-- AS01 ---ll-- MCRO --ll-- F
l-- REOR --ll-- AS01 ---ll-- PTCL --ll-- G
l-- REOR --ll-- AS01 ---ll-- MAMH --ll-- H
l-- REOR --ll-- AS01 ---ll-- MCRO --ll-- U

- Y yo quiero traerme todos los registros TUBICACION pero solo donde su CodRegion y CodEstacion coincidan con los de TESTACIONES. Y lo trato de hacer asi sin embargo me da error.

Código MySQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion AND ON A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- Y si trato de hacer el Join solo asi

Código SQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- O asi

Código SQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- Esos ultimos 2 me funcionan pero obviamente no me traen lo que yo deseo. Que esta mal en mi primera consulta??

- Muchas Gracias y Salu2.
  #2 (permalink)  
Antiguo 12/01/2015, 10:51
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Inner Join en dos campos

Hola slikp, por lo que veo a simple vista, estas haciendo mal la primer consulta.

Tu código.

Código MySQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion AND ON A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

Código correcto

Código MySQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion AND A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";


Espero te sirva.

Saludos.



Cita:
Iniciado por slikp Ver Mensaje
- Buenas espero puedan ayudarme tengo problemas para realizar la siguiente consulta. En primer lugar tengo estas dos tablas.

- testaciones
-------------------------------------
l CodRegion l CodEstacion l DescripEstacion l
l-------------------------------------
l-- REAM --ll-- AM02 --ll-- ABLOQUEA --ll
l-- REAM --ll-- AM03 --ll-- ABLOQUEB --ll
l-- REAM --ll-- AM04 --ll-- ABLOQUEC --ll
l-- REGU --ll-- AS01 --ll-- BBLOQUEA --ll
l-- REGU --ll-- AS02 --ll-- BBLOQUEB --ll
l-- RECE --ll-- AS01 --ll-- CBLOQUEA --ll
l-- REOR --ll-- AS01 --ll-- DBLOQUEA --ll
l-- REOR --ll-- AS02 --ll-- DBLOQUEA --ll
l-- REOR --ll-- AS03 --ll-- DBLOQUEA --ll
----------------------------------------

-tubicacion

--------------------------------------------------
l CodRegion l CodEstacion l CodUbic l DescripEstacion l
l--------------------------------------------------
l-- REAM --ll-- AM02 --ll-- MAMH --ll-- A
l-- REAM --ll-- AM02 --ll-- MCRO --ll-- B
l-- REAM --ll-- AM03 --ll-- MLAB --ll-- C
l-- REGU --ll-- AS01 ---ll-- MLAB --ll-- D
l-- REGU --ll-- AS02 ---ll-- MMCA --ll-- E
l-- RECE --ll-- AS01 ---ll-- MCRO --ll-- F
l-- REOR --ll-- AS01 ---ll-- PTCL --ll-- G
l-- REOR --ll-- AS01 ---ll-- MAMH --ll-- H
l-- REOR --ll-- AS01 ---ll-- MCRO --ll-- U

- Y yo quiero traerme todos los registros TUBICACION pero solo donde su CodRegion y CodEstacion coincidan con los de TESTACIONES. Y lo trato de hacer asi sin embargo me da error.

Código MySQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion AND ON A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- Y si trato de hacer el Join solo asi

Código SQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodEstacion = C.CodEstacion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- O asi

Código SQL:
Ver original
  1. SELECT * FROM testaciones A
  2.                      INNER JOIN tubicacion C
  3.                      ON A.CodRegion = C.CodRegion
  4.                      WHERE C.CodEstacion='" . $_POST["search"] . "'";

- Esos ultimos 2 me funcionan pero obviamente no me traen lo que yo deseo. Que esta mal en mi primera consulta??

- Muchas Gracias y Salu2.
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 12/01/2015, 10:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Inner Join en dos campos

Suele ser buena idea que digas qué error devuelve. El error es la respuesta al problema...



Intentando adivinar un poco, es que estás poniendo un ON de más:
Código MySQL:
Ver original
  1. FROM testaciones A
  2.    INNER JOIN tubicacion C  ON A.CodRegion = C.CodRegion  AND A.CodEstacion = C.CodEstacion
  3. WHERE C.CodEstacion='" . $_POST["search"] . "'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 12/01/2015, 12:08
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Inner Join en dos campos

- Muchas gracias mauritosuarez y gnzsoloyo, efectivamente era el ON de mas y bueno no puse el error que da porque es algo que estoy imprimiendo desde PHP y me paresio que no tenia sentido poner el error aqui...

- Ahora estoy confundido, creo que no es la consulta que estaba buscando, creo que lo que busco es con dos WHERE.

- Igual Muchisimas gracias cualquier duda volvere a preguntar...

Etiquetas: campos, join, 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 17:35.