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

Consulta MYSQL ¿Condicionada?

Estas en el tema de Consulta MYSQL ¿Condicionada? en el foro de Mysql en Foros del Web. Hola. Les planteo mi problema. Tengo estas tablas T1: usuarios: ID Nombre T2: proyectos ID Nombre T3: General ID Nombre T4: Reporte ID Nombre Horas ...
  #1 (permalink)  
Antiguo 24/11/2013, 21:17
 
Fecha de Ingreso: noviembre-2013
Ubicación: México, D.F.
Mensajes: 4
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Consulta MYSQL ¿Condicionada?

Hola.

Les planteo mi problema. Tengo estas tablas

T1: usuarios:
ID
Nombre

T2: proyectos
ID
Nombre

T3: General
ID
Nombre

T4: Reporte
ID
Nombre
Horas
ProGe
Bandera

¿Que quiero? Bueno requiero hacer una tabla de reporte en base a la informacion que se requiere. Esa información son:

Reporte General:
Nombre: Juan
Horas: 05:00
ProGe: Proyecto

¿Como obtengo los otros datos como horas y quien participo? En un formulario PHP.

¿Cual es el problema?
Hago la consulta todo bien, pero.... si mi consulta es por ejemplo:
Código MySQL:
Ver original
  1. SELECT usuarios.nombre, proyectos.nombre, reportes.hora
  2. FROM usuarios, proyectos, reportes
  3. WHERE usuarios.ID=reportes.Nombre AND proyectos.nombre?Reporte.ProGe

Sale todo bien pero el detalle esta en que en el campo ProGe, no todos los resultados provienen de Proyectos, también de General. Entonces me gustaría saber como puedo hacer una consulta no se, tal vez condicionada donde Si Bandera=1 elija general.nombre y cuando sera 0 use proyectos.nombre

Espero que se haya entendido. De antemano gracias por la ayuda y es mi primer post, este sitio me ha ayudado mucho y he tratado de buscar la solución pero a decir verdad aun no se como poder preguntar bien mi problema al buscador.

Saludos.

Última edición por gnzsoloyo; 24/11/2013 a las 21:56
  #2 (permalink)  
Antiguo 24/11/2013, 22:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MYSQL ¿Condicionada?

No existen las consultas condicionales en MySQL.
Por otra parte plantear que una FK se relaciona con dos PK distintas, es un error gravísimo de fundamentos de BBDD.
Suponiendo que ese sea el caso, y sabiendo que no puede tener dos valores diferentes, es decir, o pertenece a Proyectos o pertenece a General, la solución más sencilla podría ser:
Código MySQL:
Ver original
  1. SELECT U.nombre, P.nombre, R.hora
  2. FROM usuarios U
  3.     INNER JOIN proyectos P ON P.nombre = P.Proyecto
  4.     INNER JOIN reportes R ON U.ID=R.Nombre
  5. SELECT U.nombre, P.nombre, R.hora
  6. FROM usuarios U
  7.     INNER JOIN General G ON P.nombre = G.ProGe
  8.     INNER JOIN reportes R ON U.ID=R.Nombre
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/11/2013 a las 13:25
  #3 (permalink)  
Antiguo 25/11/2013, 13:06
 
Fecha de Ingreso: noviembre-2013
Ubicación: México, D.F.
Mensajes: 4
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Consulta MYSQL ¿Condicionada?

Gracias por la respuesta. De hecho checaba la normalización y si hay una especie de inconsistencia. Muchos a muchos y es que la tabla estaba planeada pero después ha sufrido modificaciones no planeadas por lo que el control se ha como que perdido.

Voy a checar la solución que me propones y comento.

Gracias.

Pregunta. Viendo que es un error de fundamentos. Cual sería tu sugerencia de solución?

Gracias.
  #4 (permalink)  
Antiguo 27/11/2013, 18:02
 
Fecha de Ingreso: noviembre-2013
Ubicación: México, D.F.
Mensajes: 4
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Consulta MYSQL ¿Condicionada?

Hola. De neuvo yo, aplicando la solucion que me diste me muestra el siguiente error:

Unknown column 'R.NombreTipo' in 'on clause'

y si le muevo me marca el mismo error por ejemplo u.ID

Disculpe, soy usuario nuevo en el MySQL.

gracias.
  #5 (permalink)  
Antiguo 27/11/2013, 18:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MYSQL ¿Condicionada?

Bueno, yo no puse ningún campo llamado "NombreTipo" en ninguna parte, por lo que si no me posteas la consulta que usaste tu, no puedo saber a ciencia cierta dónde está el error.
Por otro lado, ten en cuenta que tampoco aparece ese nombre en la descripcion de las tablas en tu primer post, así que...
Postea tu query.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, php, select, tabla, usuarios
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 13:40.