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

Consulta de tres tablas con datos iguales .. Ayuda ..!!

Estas en el tema de Consulta de tres tablas con datos iguales .. Ayuda ..!! en el foro de Mysql en Foros del Web. Hola recurro a ustedes por que llevo ya arto tiempo haciendo la consulta pero no hayo con la correcta me carca error ..! Bueno tengo ...
  #1 (permalink)  
Antiguo 14/02/2011, 15:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación Consulta de tres tablas con datos iguales .. Ayuda ..!!

Hola recurro a ustedes por que llevo ya arto tiempo haciendo la consulta pero no hayo con la correcta me carca error ..!

Bueno tengo 3 tablas :
1 : Contrato que tiene : el id de ese contarto es el campo 'id_contrato' , nom_cont
2 : Interventores que tiene : el id 'es id_inter' , nombre_interventor' , 'correo_int'
3 : relacion_interventor que tiene : id_inter , id_contrato

la tercera tabla es una tabla de muchos a muchos ... quiere decir que un contrato puede tener muchos interventores y un inerventor puede tener muchos contratos ... y hay me guarda el id del interventor y el id del contrato al que esta relacionado

Me hago entender ?

mi consulta es la siguiente pero me marca error , quiesiera saber si esta bien hecha :

Lo que yo quiero llamar en mi consulta es el d del interventor y el id del contrato al que esta relacionado pero eso como ya les dije esta en otras tablas y ella estan relacionadas...


Código PHP:

$sql_bus_inter 
="SELECT  in.*, re.id_contrato , re.id_inter
        FROM contrato  AS con, 
        intervenor AS in , 
        relacion_interventor AS re,
        WHERE  
                con.id_contrato= re.id_contrato and
        in.id_inter = re.id_inter"
;*/ 
Gracias
by: Alexa
  #2 (permalink)  
Antiguo 14/02/2011, 15:21
 
Fecha de Ingreso: enero-2011
Ubicación: Bucaramanga
Mensajes: 60
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Consulta de tres tablas con datos iguales .. Ayuda ..!!

Hola alexa para que te funcione tal como tu quieres tienes que hacer el uso de JOIN, para que puedas hacer consultas a varias tablas y t traiga los valores de las otras tablas en la que exista una relacion:

EJemplo de consulta

Código SQL:
Ver original
  1. SELECT datediff(date_required,closedate)AS totaldias,
  2.         glpi_tracking.name AS titulo,
  3.         glpi_tracking.DATE AS fechaabiero,
  4.         glpi_tracking.date_required AS fecharequerido,
  5.         glpi_tracking.closedate AS fechacierre,
  6.         glpi_users.name AS techelpdesk
  7.         FROM glpi_tracking
  8.         INNER JOIN glpi_users
  9.         ON glpi_tracking.assign = glpi_users.ID
  10.         WHERE date_required>=closedate
Comprende la consulta y t sera muy facil!!!!!
  #3 (permalink)  
Antiguo 14/02/2011, 16:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta de tres tablas con datos iguales .. Ayuda ..!!

Hola indigo0526:

Tal y como lo comenta smolina es mejor utilizar JOIN para unir tus tablas que hacerlo explícitamente en el where (aunque esto no implica que no puedas hacerlo). además que la consulta es más "limpia" el rendimiento mejora bastante. En cuanto al error en tu consulta y a modo de cultura general te comento que tienes una coma de más al listar la última tabla en tu FROM, de tal manera que debería quedar así

SELECT in.*, re.id_contrato , re.id_inter
FROM
contrato con,
intervenor in ,
relacion_interventor re
WHERE
con.id_contrato = re.id_contrato and
in.id_inter = re.id_inter

Si no tienes muchos registros en tus tablas puede que no notes la diferencia entre las consultas, pero igual y haz la prueba.

Saludos
Leo.
  #4 (permalink)  
Antiguo 15/02/2011, 13:16
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta de tres tablas con datos iguales .. Ayuda ..!!

Muchisimas Gracias a los dos voy a estudiar el JOIN ... Leo por que no utilizas el alias ??
asi si le asigna esa variable a la tabla ?
  #5 (permalink)  
Antiguo 16/02/2011, 09:17
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta de tres tablas con datos iguales .. Ayuda ..!!

Cita:
Iniciado por indigo0526 Ver Mensaje
Muchisimas Gracias a los dos voy a estudiar el JOIN ... Leo por que no utilizas el alias ??
asi si le asigna esa variable a la tabla ?
Hola indigo0526, creo que te refieres a por qué no utilizo la palabra reservara AS para definir el alias de mis tablas. Esta palabra es completamente opcional, es decir que el select funciona tanto si la pones como si no la pones, si checas la Sintaxis del JOIN de darás cuenta que tienes lo siguiente:

Cita:
Puede poner un alias en una referencia de tabla usando tbl_name AS alias_name o tbl_name alias_name:
Código MySQL:
Ver original
  1. mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
  2. ->        WHERE t1.name = t2.name;
  3. mysql> SELECT t1.name, t2.salary FROM employee t1, info t2
  4. ->        WHERE t1.name = t2.name;

Saludos
Leo.

Etiquetas: iguales, tablas, tres
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 16:43.