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

Como harían la siguiente consulta medio complicada???

Estas en el tema de Como harían la siguiente consulta medio complicada??? en el foro de Bases de Datos General en Foros del Web. Hola, bueno, les cuento que estoy armando una aplicación multicapa en php, pero en mi capa de consultas tengo la necesidad de hacer algo con ...
  #1 (permalink)  
Antiguo 06/11/2011, 16:46
 
Fecha de Ingreso: julio-2011
Ubicación: Bogotá
Mensajes: 34
Antigüedad: 12 años, 9 meses
Puntos: 0
Como harían la siguiente consulta medio complicada???

Hola, bueno, les cuento que estoy armando una aplicación multicapa en php, pero en mi capa de consultas tengo la necesidad de hacer algo con la base de datos y no he podido....

El dilema es que tengo 2 tablas, las cuales debo cruzar, pero yo hacía esto en access y usaba una consulta para agrupar y seleccionar el máximo registro, luego la grababa y cruzaba mi tabla principal contra esta consulta, pero no sé como se hace directo en un solo sql sin usar esa consulta intermedia ya que no puedo hacerlo, sino debo mandar el resultado de una vez.

Mis tablas son:

NEGOCIOS
campos:
id (autonumerico y llave)
nombre_negocio (texto)

La otra tabla se llama
ACTIVACIONES
campos:

id (autonumerico y llave)
id_negocios
fecha_vencimiento (fecha)

cruzando negocios.id con activaciones.id_negocios

los datos separados por pipe (|) son:
para NEGOCIOS:
id |nombre_negocio
1 |negocio1
2 |negocio2
3 |negocio3
4 |negocio4

para ACTIVACIONES
id |id_negocios |fecha_vencimiento
1 |2 |2011-01-01
2 |2 |2011-04-01
3 |2 |2011-12-31
4 |3 |2011-12-01
5 |4 |2011-01-01

bueno, la idea acá es mostrar lo siguiente, al cruzar la tabla NEGOCIOS contra ACTIVACIONES debo mostrar todos los registros de la tabla NEGOCIOS sin repetidos y con la fecha del último vencimiento...

Es decir que el resultado debe ser algo como

negocios.id |nombre_negocio |fecha_vencimiento
1 |negocio1 |'NULL'
2 |negocio2 |2011-12-31
3 |negocio3 |2011-12-01
4 |negocio4 |2011-01-01

y asi podré lograr mi resultado que es saber cuales están realmente vencidas y por vencer.

Mil gracias ingenieros y por favor perdonen el pereque.

Aprendiz7 ;)
  #2 (permalink)  
Antiguo 06/11/2011, 17:22
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: Como harían la siguiente consulta medio complicada???

Es medio básica, pero es algo así:
Código MySQL:
Ver original
  1.     N.id, N.nombre_negocio, MAX(A.fecha_vencimiento) fecha_vencimiento
  2.     negocio N LEFT JOIN activaciones ON N.id = N.id = A.id_negocios
  3. GROUP BY A.id_negocios;
En este tipo de consultas el orden de los factores si altera el producto... LEFT JOIN le indica al MySQL que debe devolver todos los registros de la primera tabla (la izquierda), tengan o no coincidencias con la segunda tabla.
En los registros donde no hay coincidencias, LEFT JOIN devuelve NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/11/2011, 20:56
 
Fecha de Ingreso: julio-2011
Ubicación: Bogotá
Mensajes: 34
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Como harían la siguiente consulta medio complicada???

perfecto, asi lo haré, muchas muchas gracias"!!!

Etiquetas: access, medio, php, registros, siguiente, sql, tabla, campos
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:09.