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

inner join de varias tablas

Estas en el tema de inner join de varias tablas en el foro de Mysql en Foros del Web. saludos, les cuento que necesito obtener todos los registros de una tabla PRINCIPAL cuyo codigo esté presente por lo menos en una de otras 4 ...
  #1 (permalink)  
Antiguo 21/03/2006, 06:39
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
inner join de varias tablas

saludos, les cuento que necesito obtener todos los registros de una tabla PRINCIPAL cuyo codigo esté presente por lo menos en una de otras 4 tablas, lo explicare con 2 tablas nada mas:
por ejemplo tengo en el codigo los siguientes datos

PRINCIPAL
1
2
3
4


PRIMERA
1
2

SEGUNDA
1
4

lo que yo quiero es que traiga todos los registros de la tabla PRINCIPAL de los codigos 1, 2, 4. que son los que existen por lo menos en alguna de las otras dos tablas. al hacer Inner join colocando las 2 tablas me trae solo el 1 que es el que se encuentra en las dos tablas pero el 2 y el 4 no los trae. que instrusccion deberia utilizar para traerme esos datos de la forma que quiero?.

Yo use el inner join asi:
Código PHP:
    $resultmysql_query("SELECT * FROM medios_comunitarios INNER JOIN aspectos_economicos ON medios_comunitarios.cod_mc = aspectos_economicos.cod_mc  
INNER JOIN aspectos_legales ON medios_comunitarios.cod_mc = aspectos_legales.cod_mc  
INNER JOIN  aspectos_sociales ON  medios_comunitarios.cod_mc = aspectos_sociales.cod_mc  
INNER JOIN aspectos_tecnicos ON medios_comunitarios.cod_mc  = aspectos_tecnicos.cod_mc 
WHERE fecha  Between '"
.$_SESSION['solicitud_desde']."' AND '".$_SESSION['solicitud_hasta']."' order by fecha"$link); 
el cogigo lo puse con las cuatro tablas mas la principal claro, de esa manera solo me arroja como resultado los campos cuyo codigo se encuentre en las otrs 4 tablas, y yo quiero que tambien me devuelva aquellos que no necesariamente esten en todas.

Espero que me halla explicado bien.
  #2 (permalink)  
Antiguo 21/03/2006, 08:04
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 20 años, 4 meses
Puntos: 4
a ver asi
Código:
$result= mysql_query("
SELECT * 
FROM medios_comunitarios 
WHERE cod_mc IN (
SELECT cod_mc 
FROM aspectos_legales
)
OR cod_mc IN (
SELECT cod_mc 
FROM aspectos_sociales
)
OR cod_mc IN (
SELECT cod_mc 
FROM aspectos_tecnicos
)
AND fecha  Between '".$_SESSION['solicitud_desde']."' 
AND '".$_SESSION['solicitud_hasta']."' 
order by fecha"
, $link);
__________________
Internet Explorer SuckS
Download FireFox
  #3 (permalink)  
Antiguo 22/03/2006, 06:04
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
De esa manera tampoco funciona, me da error de sintaxis, incluso puse un solo IN y el select dentro de parentesis lo puse entre comillas y no arroja resultados. alguna otra sugerencia??.
Segui tratando con los INNER poniendo OR's pero tampoco nada.
  #4 (permalink)  
Antiguo 25/03/2006, 12:51
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
Y sigo...
El codigo que coloco Sir.caraj0dida, funciona en db2, pero en MySQl no furula, aguien sabe alguna forma alternativa o una forma que funcione en MySQL??
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:02.