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

como pudiera emplear una consulta relativa?

Estas en el tema de como pudiera emplear una consulta relativa? en el foro de Mysql en Foros del Web. Hola a todos. me gustaría poder saber como hacer una especie de JOIN de la siguiente forma Problema: Tengo una tabla llamada INFORMACIÓN y tengo ...
  #1 (permalink)  
Antiguo 20/09/2011, 06:29
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta como pudiera emplear una consulta relativa?

Hola a todos. me gustaría poder saber como hacer una especie de JOIN de la siguiente forma

Problema:
Tengo una tabla llamada INFORMACIÓN y tengo otra tabla llamada ARCHIVOS y una llamada COLABORADORES

entonces yo necesito mostrar todos los archivos donde (x) usuario este como colaborador en una información.

Código PHP:
SELECCIONAR nombre_archivofecha_archivo nombre_proyecto
 DE informacion
archivos
 DONDE EL usuario este dentro de colaboradores EN proyectos 

RESULTADO EJEMPLO:

Archivo : documento.pdf - 27 septiembre 2011
Proyecto: Lineas telefonicas

Archivo: documento.pdf - 25 Septiembre 2011
Proyecto: Remodelacion casa



Gracias de antemano y un gran saludo a todos..!!!
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #2 (permalink)  
Antiguo 20/09/2011, 07:00
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: como pudiera emplear una consulta relativa?

Es dificil no darte una respuesta en psudocógido sin saber los tipos de relaciones que hay entre las tablas (uno a uno, uno a muchos o muchos a muchos) pero esto es como yo lo veo:

Paso 1: Seleccionar todos los archivos.
Código MySQL:
Ver original
  1. SELECT nombre_archivo, fecha_archivo FROM Archivos

Paso 2: Seleccionar todos los archivos y sus respectivas colaboraciones:
Código MySQL:
Ver original
  1.   nombre_archivo, fecha_archivo
  2.   Archivos
  3.   RIGHT JOIN colaboradores ON [clausula-de-union-entre-las-dos-tablas]

Al hacer un RIGHT JOIN, colaboradores manda más y no mostrará archivos que no tengan colaboraciones.

Paso 3. Sólo de los usuarios que nos interesen
Código MySQL:
Ver original
  1.   nombre_archivo, fecha_archivo
  2.   Archivos
  3.   RIGHT JOIN colaboradores ON [clausula-de-union-entre-las-dos-tablas]
  4.   colaboradores.usuario_id = [id-del-usuario]

Hasta este punto, y si no me he equivocado, debemos de tener los sólo los archivos donde ha colaborado un determinado usuario.

Como estoy haciendo muchas cosas a ciegas y me da la impresión de que la tabla de información es sólo para completar la información de los archivos creo que es mejor parar aquí y comprobar que está todo correcto.
__________________
No hay cuerda desafinada sino músico progresivo
  #3 (permalink)  
Antiguo 20/09/2011, 10:21
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: como pudiera emplear una consulta relativa?

Estas son las tablas

TABLA COLABORADORES


TABLA ARCHIVOS



Consulta que hago segun tu ejemplo

Código PHP:
SELECT
rfq_file_attachments
.iduniqKeygen,
rfq_file_attachments.file_name,
rfq_file_attachments.file_size,
rfq_file_attachments.file_path,
rfq_file_attachments.file_extention,
rfq_file_attachments.description,
rfq_file_attachments.time
FROM
rfq_file_attachments
RIGHT JOIN rfq_collaborators ON rfq_collaborators
.iduniqKeygen
WHERE
rfq_collaborators
.idaccount '3' 
pero me retorna nada y me sale (NULL) en los resultados.

debo aclarar que el iduniqKeygen es un ID de 32 numeros que identifica el registro, este se genera cada vez que se crea una RFQ information nuevo.

la jerarquia va asi mas o menos

RFQ tiene COLABORADORES
RFQ tiene ARCHIVOS


la idea es extraer los archivos recientes de un RFQ donde X usuario este como colaborador.

Gracias por ayudarme aprecio mucho tu gesto.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 20/09/2011, 10:58
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: como pudiera emplear una consulta relativa?

Hola. Veo una cosa extraña pero quizás sea falta de conocimientos MySQL.

En la clausula RIGHT JOIN normalmente yo suelo poner una condición de igualdad entre las dos tablas. Es decir, la clave que une la tabla de colaboradores con la de ficheros

Me refiero a esto (sacado de ejemplo de MySQL)
Código MySQL:
Ver original
  1. SELECT table1.* FROM table1
  2. LEFT JOIN table2 ON table1.id=table2.id
  3. WHERE table2.id IS NULL;
__________________
No hay cuerda desafinada sino músico progresivo
  #5 (permalink)  
Antiguo 20/09/2011, 12:36
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: como pudiera emplear una consulta relativa?

Cita:
Iniciado por Smolky Ver Mensaje
Hola. Veo una cosa extraña pero quizás sea falta de conocimientos MySQL.

En la clausula RIGHT JOIN normalmente yo suelo poner una condición de igualdad entre las dos tablas. Es decir, la clave que une la tabla de colaboradores con la de ficheros

Me refiero a esto (sacado de ejemplo de MySQL)
Código MySQL:
Ver original
  1. SELECT table1.* FROM table1
  2. LEFT JOIN table2 ON table1.id=table2.id
  3. WHERE table2.id IS NULL;

si el ejemplo a cabalidad pero me retorna la lista de todos los archivos.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Etiquetas: tabla
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 20:08.