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

Consulta a 2 tablas

Estas en el tema de Consulta a 2 tablas en el foro de Mysql en Foros del Web. Buenas, no consigo hacer con inner join una consulta a 2 tablas para que me ordene los datos de la primera tabla por un dato ...
  #1 (permalink)  
Antiguo 15/02/2011, 03:45
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 8 meses
Puntos: 1
Consulta a 2 tablas

Buenas, no consigo hacer con inner join una consulta a 2 tablas para que me ordene los datos de la primera tabla por un dato de la segunda. Ayuda, plis.
Las tablas serían:

tb_productos (id,nombre) y tb_precios (id,id_producto,precio,pais)
Por ejemplo:
tb_productos (1,caja) / tb_precios (1,1,6500,francia)
tb_productos (1,caja) / tb_precios (2,1,2000,francia)
tb_productos (1,caja) / tb_precios (3,1,2500,francia)
tb_productos (1,caja) / tb_precios (1,1,7500,españa)
tb_productos (2,mono) / tb_precios (1,1,500,usa)

Lo que quiero es listar los productos sin repetir con un distinct (caja y mono), ordenados por el menor precio de tb_precios que tenga ese producto. En caso de la caja, 2000 en francia seria el precio que deberia coger.
Y el resultado de la consulta ordenado por precio en ascendente:
1º- 2, mono, 1500
2º- 1, caja, 2000

Gracias!
  #2 (permalink)  
Antiguo 15/02/2011, 04:24
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: Consulta a 2 tablas

Prueba algo así.

Esta te muestra todos los precios ordenados por precio, pero solo para cada una de las entradas diferentes de productos

Código SQL:
Ver original
  1. SELECT * FROM
  2. (SELECT ID, NOMBRE
  3. FROM TB_PRODUCTOS
  4. GROUP BY ID, NOMBRE) AS T1
  5. INNER JOIN TB_PRECIOS T2 ON
  6. T1.ID = T2.ID_PRODUCTO
  7. ORDER BY T2.PRECIO

Aunque si lo que quieres es sólo los de menor precio de cada tipo sería algo asi

Código SQL:
Ver original
  1. SELECT T1.ID, T1.NOMBRE, MIN(T2.PRECIO)
  2. FROM TB_PRODUCTOS T1
  3. INNER JOIN TB_PRECIOS T2 ON
  4. T1.ID = T2.ID_PRODUCTO
  5. GROUP BY T1.ID, T1.NOMBRE

Etiquetas: consultas, join
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 12:21.