Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Slikp en 12 Enero 2015, 17:53 pm



Título: Inner Join en dos campos
Publicado por: Slikp en 12 Enero 2015, 17:53 pm
Código:
- 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 [B]TUBICACION[/B] pero solo donde su CodRegion y CodEstacion coincidan con los de [B]TESTACIONES[/B]. Y lo trato de hacer asi sin embargo me da error.


[code=sql]SELECT * FROM testaciones A
                     INNER JOIN tubicacion C
                     ON A.CodRegion = C.CodRegion AND ON A.CodEstacion = C.CodEstacion
                     WHERE C.CodEstacion='" . $_POST["search"] . "'";


- Y si trato de hacer el Join solo asi
 

Código
  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
  1. SELECT * FROM testaciones A
  2.                     INNER JOIN tubicacion C
  3.                     ON A.CodRegion = C.CodRegion
  4.                     WHERE C.CodEstacion='" . $_POST["search"] . "'";
  5.  

- 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.

   EDITO: SOLUCIONADO

- Mi consulta tenia un On de mas, la consulta queda Asi:

Código
  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"] . "'";
[/code]