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

Join de 3 tablas

Estas en el tema de Join de 3 tablas en el foro de Mysql en Foros del Web. Tengo 3 tablas g_estado, g_coordenas, g_datos. Lo que tengo que hacer es una consulta de la tabla g_estados en donde obtenga el CodCiudad si el ...
  #1 (permalink)  
Antiguo 25/07/2007, 08:48
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 2 meses
Puntos: 0
Join de 3 tablas

Tengo 3 tablas g_estado, g_coordenas, g_datos.

Lo que tengo que hacer es una consulta de la tabla g_estados en donde obtenga el CodCiudad si el CodMapa = "0" y el CodEstado = "P"
y con ese CodCiudad obtenido,y el codMapa ="0" sacar de la tabla g_coordenadas y g_datos todos los demas campos.

No se si habria que usar una consulta donde se junten las 3 tablas.
quiero tener todos los campos cuando el codmapa= "0" y el CodEstado="P"

Muchas gracias, si surge alguna idea..


Yo hice esto:


<?php

$cero= "0";
$P = "P";

$cons = "SELECT CodCiudad FROM g_estados WHERE CodMapa='$cero' AND CodEstado='$p'";


// esto me trae el CodCiudad

y luego hice esto

$cons2 = "SELECT LinX, LinY, CodDato FROM g_coordenadas WHERE CodCiudad='$codigociudad' AND CodMapa='$cero'";

mi pregunta es como obtengo el CodDato de g_datos??

?>



ESTAS SON LAS TABLAS...


g_estados
CodCiudad(pk)-CodMapa(pk)-CodEstado(pk)
1 - 0 - P
57 - 1 - P


g_coordenadas
CodCiudad(pk)-CodMapa(pk)- LinX LinY CodDatos(pk)
1 - 0 - 50 - 45 - 0
1 - 0 - 14 - 78 - 1
57 - 0 - 70 - 84 - 1


g_datos
Coddatos(pk) - Descrip.Datos - TamanioX - TamanioY
0 - icono - 10 - 10
1 - nomciu - 20 - 20
2 - tempmax - 20 - 20
3 - tempmin - 20 - 20
  #2 (permalink)  
Antiguo 25/07/2007, 14:14
 
Fecha de Ingreso: julio-2007
Mensajes: 3
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Join de 3 tablas

Hola amontagnaro,

Creo que una buena solucion para tu pregunta seria el uso de joins entre las tablas asi puedes obtener todos los datos que necesites en una sola consulta en tu pagina en lugar de varias para eso puedes usar algo como lo siguiente,

SELECT g_estados.CodCiudad, g_coordenadas.LinX, g_coordenadas.LinY, g_datos.Descrip.Datos, g_datos.TamanioX, g_datos.TamanioY
FROM ((g_estados INNER JOIN g_coordenadas ON g_estados.CodCiudad = g_coordenadas.CodCiudad)
INNER JOIN g_datos ON g_coordenadas.CodDatos = g_datos.CodDatos)
WHERE g_estados.CodMapa = $CodMapa and g_estados.CodEstado = $CodEstado

Te recomiendo revisar el SQL para que se ajuste a tu estructura de tabla con los nombres y uniones correctas.

Saludos!
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 06:32.