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

[SOLUCIONADO] Mostrar último registro en común de dos tablas

Estas en el tema de Mostrar último registro en común de dos tablas en el foro de Mysql en Foros del Web. Hola, no sé si me epliqué bien con el título, voy a intentar explicarlo teniendo como ejemplo este video: https://www.youtube.com/watch?v=6BfofgkrI3Y Ahí se puede ver cómo ...
  #1 (permalink)  
Antiguo 19/08/2014, 02:13
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Mostrar último registro en común de dos tablas

Hola, no sé si me epliqué bien con el título, voy a intentar explicarlo teniendo como ejemplo este video:
https://www.youtube.com/watch?v=6BfofgkrI3Y

Ahí se puede ver cómo haciendo un select muestra y relaciona los registros de las dos tablas (mediante customers.id y seller_id)

Código SQL:
Ver original
  1. SELECT customers.id, customers.name, items.name, items.cost
  2. FROM customers, items
  3. WHERE customers.id=seller.id
  4. ORDER BY customers.id

La consulta muestra lo siguiente:


¿No es posible realizar una consulta que me muestre sólo el último producto que cada vendedor "subió"? Por ejemplo que muestre el último producto de Bucky Roberts, el último de Noah Parker, etc, les dejo una img para explicarme mejor


Saludos y gracias
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.
  #2 (permalink)  
Antiguo 19/08/2014, 05:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Mostrar último registro en común de dos tablas

No lo he probado, pero si para saber el orden de los productos no tienes fecha y hay que usar el id de items, creo que esto podría servirte.
Código MySQL:
Ver original
  1. SELECT t1.id, t1.name, t1.nombre, t1.cost FROM (SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id)t1 GROUP BY  t1.customers.id
  #3 (permalink)  
Antiguo 19/08/2014, 14:22
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Mostrar último registro en común de dos tablas

Cita:
Iniciado por jurena Ver Mensaje
No lo he probado, pero si para saber el orden de los productos no tienes fecha y hay que usar el id de items, creo que esto podría servirte.
Código MySQL:
Ver original
  1. SELECT t1.id, t1.name, t1.nombre, t1.cost FROM (SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id)t1 GROUP BY  t1.customers.id
Hola, gracias por responder! En realidad no entendí muy bien esa consulta, t1 sería tabla 1? O sea, customers o items, pero si al principio fuese t1 = items al final pusiste t1.customers.id, qué significa? Y t1.nombre? Disculpá si es que no entiendo, no tengo mucha experiencia en SQL, saludos y gracias
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.
  #4 (permalink)  
Antiguo 19/08/2014, 14:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Mostrar último registro en común de dos tablas

En realidad t1 es el alias para llamar los datos de la subconsulta. Es decir, primero nos traemos los datos ordenados como queremos en una subconsulta:
Código MySQL:
Ver original
  1. SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id
a la que pongo el alias t1

Luego, una vez están esos datos, mediante otra consulta sobre ellos con agrupación me traigo los que deseo, pero no olvides que ahora son datos de esa consulta que he llamado t1.

Código MySQL:
Ver original
  1. SELECT t1.id, t1.name, t1.nombre, t1.cost FROM (SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id)t1 GROUP BY  t1.customers.id
  #5 (permalink)  
Antiguo 19/08/2014, 21:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Mostrar último registro en común de dos tablas

Cita:
Iniciado por jurena Ver Mensaje
En realidad t1 es el alias para llamar los datos de la subconsulta. Es decir, primero nos traemos los datos ordenados como queremos en una subconsulta:
Código MySQL:
Ver original
  1. SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id
a la que pongo el alias t1

Luego, una vez están esos datos, mediante otra consulta sobre ellos con agrupación me traigo los que deseo, pero no olvides que ahora son datos de esa consulta que he llamado t1.

Código MySQL:
Ver original
  1. SELECT t1.id, t1.name, t1.nombre, t1.cost FROM (SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id)t1 GROUP BY  t1.customers.id
¡Perfecto! Muchas gracias :) Lo único que al final tuve que cambiar "GROUP BY t1.customers.id" por "GROUP BY t1.id", ya que si no me daba error, lo dejo para futuras referencias:

Código MySQL:
Ver original
  1. SELECT t1.id, t1.name, t1.nombre, t1.cost FROM (SELECT customers.id, customers.name, items.name nombre, items.cost
  2. FROM customers INNER JOIN items
  3. ON customers.id=items.seller_id
  4. ORDER BY items.id)t1 GROUP BY  t1.id

Solucionado, saludos y gracias de nuevo!
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.

Etiquetas: registro, select, 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 09:12.