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

ordenar grup by minimo join on tablas

Estas en el tema de ordenar grup by minimo join on tablas en el foro de Mysql en Foros del Web. hola , miren tengo dos tabla, en la cual, estan relacionadas, la primer tabla, tiede datos y con su id, tiene fotos de la tabla2, ...
  #1 (permalink)  
Antiguo 03/07/2013, 07:09
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 2 meses
Puntos: 3
ordenar grup by minimo join on tablas

hola , miren tengo dos tabla, en la cual, estan relacionadas, la primer tabla, tiede datos y con su id, tiene fotos de la tabla2, bueno ustedes entienden..

lo que busco es sacar los datos, con una la imagen, de cada id de la "tabla1" pero con la foto que le corresponde de la "tabla2" de menor orden , el orden de gallery es el campo , "order"

el tema de ordenar, lo hice con order by asc, ya que hay nulos y min, no los toma...

bueno esta es mi consulta sql, pero no toma los minimos de cada id de la tabla gallery...

Código MySQL:
Ver original
  1. select  m.*,g.photo photo_g,
  2. g.id_item id_item_g,g.orden 'order_gallery'
  3. from tabla1 m
  4. join tabla2 g
  5. on m.id=g.id_item
  6. GROUP BY (m.id)
esta es la imagen para guiarlos un poco



la foto se ve un poco chiquita, pero si la descargan, se ve bien...

Última edición por gnzsoloyo; 03/07/2013 a las 08:04
  #2 (permalink)  
Antiguo 03/07/2013, 07:55
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ordenar grup by minimo join on tablas

Hola aldo_rengo:

Este tipo de consultas es muy común en el foro... de hecho es una de las consultas más comunes, me sorprende que no hayas encontrado ningún otro post que te ayudara a resolver la consulta por tu cuenta. Hay muchas maneras para resolver este tipo de consultas, la más común es utilizando una subconsulta que te obtenga el valor mínimo que te interesa y filtrar la consulta que colocaste al inicio... es decir, si tú haces algo como esto:

Código MySQL:
Ver original
  1. SELECT id_item, MIN(orden) min_orden
  2. FROM tabla2
  3. GROUP BY id_item

Obtienes la foto con el mínimo orden... ojo, el que tengas valores NULL en el campo efectivamente puede afectar el resultado... ya que no se considera un número. puedes colocar una condición IFNULL su es que necesitas considerar también estos registros. Si no es necesario considerar estos valores entonces puedes hacer algo como esto:

Código MySQL:
Ver original
  1. SELECT  m.*, g.photo photo_g, g.id_item id_item_g, g.orden order_gallery
  2. FROM tabla1 m
  3. INNER JOIN tabla2 g ON m.id = g.id_item
  4. (  SELECT id_item, MIN(orden) min_orden
  5.    FROM tabla2
  6.    GROUP BY id_item ) T ON g.id = T.id_item AND g.orden = T.min_orden

Haz la prueba nos comentas.

Saludos
Leo.

Etiquetas: campo, join, select, sql, tabla, tablas
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 04:21.