Foros del Web » Programando para Internet » PHP »

Consultar varias tablas en un Query SQL

Estas en el tema de Consultar varias tablas en un Query SQL en el foro de PHP en Foros del Web. Hola, no se si se puede consultar varias tablas a la vez con sus campos mediante una consulta sql?? hago la busqueda anteriormente mediante una ...
  #1 (permalink)  
Antiguo 22/07/2003, 11:53
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Consultar varias tablas en un Query SQL

Hola, no se si se puede consultar varias tablas a la vez con sus campos mediante una consulta sql?? hago la busqueda anteriormente mediante una pagina.php con sus campos para que el usuario escriba su criterio de acuerdo al campo.


tengo que buscar:

codigo FROM tabla1

nombre FROM tabla2

component FROM tabla3

intervencion FROM tabla4

ubicacion FROM tabla5


se pueden incluir todos estos parametros en una consulta SQL para una bd mysql?


Gracias

  #2 (permalink)  
Antiguo 22/07/2003, 12:10
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
por ejemplo lei hace poko esto dejado por cluster

SELECT tabla1.campo,tabla2.campo,tabla3.campo FROM tabla1,tabla2,tabla3 WHERE tabla1.campo LIKE '%$algo%' AND tabla2.campo LIKE '%$algo2%' AND tabla3.campo LIKE '%$algo3%'

esto leeria en tres campos de tablas distintas
Un Saludo
  #3 (permalink)  
Antiguo 22/07/2003, 12:10
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Si se puede hacer, pero debes tener en cuenta que de alguna forma debe guardar relación una con la otra.

te pongo un ejemplo, que lo tengo con dos tablas.

Código PHP:
    $s 'SubCategorias s';
    
$c 'Categorias c';
    
$query db_query("SELECT   s.IdSubCategoria,
                                s.IdCategoria ,
                                s.SubCategoria,
                                s.Descripcion ,    
                                s.Imagen,
                                c.IdCategoria
                       FROM     $s, $c
                       WHERE    s.IdCategoria = c.IdCategoria
                       AND      c.IdCategoria = $cat_id
                       ORDER BY s.SubCategoria DESC"
                     
); 
Saludos
  #4 (permalink)  
Antiguo 22/07/2003, 13:10
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta esta bien asi?

Hola he probado esta sentencia SQL pero no me ha servido, en que puedo estar equivocandome??


//me traigo las variables del form de busqueda

$a1 = $HTTP_GET_VARS["txt_codigo"];
$b1 = $HTTP_GET_VARS["txt_nombre_contraparte"];
$c1 = $HTTP_GET_VARS["txt_componente"];
$d1 = $HTTP_GET_VARS["txt_codigo_sectorintervencion"];
$e1 = $HTTP_GET_VARS["txt_localizacion"];

// asigno los nombres de las 5 tablas ( proyecto_cod_anual, proyecto_contraparte, proyectos_componentes, proyecto_sectorintervencion, proyectos )a las variables $a, $b, $c, $d, $e

// y asigno los campos a las cuales buscar en las 5 tablas ( txt_codigo, txt_nombre_contraparte, txt_componente, txt_codigo_sectorintervencion, txt_localizacion)

$a = 'proyecto_cod_anual';
$a11 = 'txt_codigo';
$b = 'proyecto_contrapartes';
$b11 = 'txt_nombre_contraparte';
$c = 'proyecto_componentes';
$c11 = 'txt_componente';
$d = 'proyecto_sectorintervencion';
$d11 = 'txt_codigo_sectorintervencion';
$e = 'proyectos';
$e1 = 'txt_localizacion';

$query= mysql_query("SELECT $a.$a11, $b.$b11, $c.$c11, $d.$d11, $e.$e11 FROM $a, $b, $c, $d, $e WHERE $a.$a11 = '$a1' AND $b.$b11 = '$b1' AND $c.$c11 = '$c1' AND $d.$d11 = '$d1' AND $e.$e11 = '$e1'")

bueno la ejecuto y me da el error, que puede ser




Última edición por andinistas; 22/07/2003 a las 13:23
  #5 (permalink)  
Antiguo 22/07/2003, 13:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Normalmente ayuda ver el mensaje del error.

Aun asi, primero tienes que saber que estas haciendo con esa consulta. Esa consulta (si en where) esta creando una "tabla" temporal de n registros ( a * b * c * d * e, siendo cada letra el numero de registros de cada tabla) y cada registro de m campos ( a + b + c + d + e, siendo cada letra el numero de campos de cada tabla). Los registros se forman combinando cada registro de cada tabla con TODOS los registros de las otras tablas. Y con la clausula WHERE lo unico que haces es seleccionar solo los registros que tengan a la vez esos valores en esos campos.

Si las tablas estan relacionadas, y quieres buscar en esas relaciones, busca inforamcion sobre el JOIN.

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




La zona horaria es GMT -6. Ahora son las 11:13.