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

No logro ordenar un campo de una consulta de dos tablas.

Estas en el tema de No logro ordenar un campo de una consulta de dos tablas. en el foro de Mysql en Foros del Web. Hola la consulta es la siguiente, tengo dos tablas (contacts y notes) las cual están referenciadas por los campos contact_id y note_contact. La consulta que ...
  #1 (permalink)  
Antiguo 18/06/2010, 23:07
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 1
No logro ordenar un campo de una consulta de dos tablas.

Hola la consulta es la siguiente, tengo dos tablas (contacts y notes) las cual están referenciadas por los campos contact_id y note_contact.

La consulta que hago es:

SELECT contacts.contact_id, contacts.contact_last, notes.note_text , notes.note_id
FROM base.contacts, base.notes
WHERE (contacts.contact_id = notes.note_contact)
GROUP BY contacts.contact_id;

El problema al cual no le encuentro solución es que en el campo note_text se ingresan para un mismo comprador distintas notas y quiero tomar la ultima nota, porque solo me muestra la primera nota al usar la sentencia GROUP BY.
  #2 (permalink)  
Antiguo 19/06/2010, 09:00
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

Bueno logre hacer que me muestre la ultima nota de esta manera

SELECT contacts.contact_id, contacts.contact_last, max(notes.note_id), notes.note_contact
FROM base.contacts, base.notes
WHERE (contacts.contact_id = notes.note_contact)
GROUP BY contacts.contact_id;

El problema es que no me relaciona el note_id con el note_contact es decir el numero de nota no tiene nada que ver con el texto real.

Existe alguna manera para que al ordenar el campo note_id no pierda la sincronizacion con note_contact ???
  #3 (permalink)  
Antiguo 19/06/2010, 11:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

Prueba con esta consulta. Primero ordeno descendente dentro de la subconsulta por el campo note_id, y luego selecciono agrupando por contac_id.
SELECT t1.cid, t1.clast, t1.cnote, t1.cnid FROM (SELECT contacts.contact_id cid, contacts.contact_last clast, notes.note_text cnote , notes.note_id cnid FROM base.contacts INNER JOIN base.notes ON contacts.contact_id = notes.note_contact ORDER BY notes.note_id DESC)T1 GROUP BY T1.cid;
  #4 (permalink)  
Antiguo 19/06/2010, 11:46
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

Voy a resumirlo en una tabla a ver si me explico bien.

tengo 3 campos.

id - nombre - fecha

Por ejemplo:
1 - gaston - 11/06/2010
2 - gustavo - 01/05/2010
3 - julian - 14/05/2010
4 - gaston - 12/01/2010
5 - gaston - 14/07/2010

Lo que necesito es listar los registros, agrupados por nombre y que del campo fecha me muestre la ultima agregada a ese registro.

por ejemplo que al hacer la consulta salga listado asi:

5 - gaston - 14/07/2010
2 - gustavo - 01/05/2010
3 - julian - 14/05/2010

Como veran me trae de gaston la fecha ultima y no la primera o segunda.

Bueno a alguien se le ocurre como hacer esa consulta?
  #5 (permalink)  
Antiguo 19/06/2010, 11:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

gastonmar,
la que te he propuesto debería funcionar, pero me temo que el campo que usas para fecha no es un campo fecha, sino un campo de tipo texto, es decir, varchar. En los campos de tipo fecha, DATE, la fecha se incluye en este orden 2010/07/14.
Dinos si estás usando un campo de tipo varchar y te ayudaremos a corregirlo.
  #6 (permalink)  
Antiguo 19/06/2010, 12:00
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

Correcto es varchar.
  #7 (permalink)  
Antiguo 19/06/2010, 12:06
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

Excelente, funciono de maravillas. solo reemplace el final por minusculas porque me daba error
t1 GROUP BY t1.cid

Ahora lo adapto con los datos restantes. Jamas pense que se podia agrupar asi y hacer varios selects.

Mil gracias.
  #8 (permalink)  
Antiguo 19/06/2010, 14:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: No logro ordenar un campo de una consulta de dos tablas.

me alegro, gastonmar,
imagino que ahora estarás trabajando con un campo de tipo DATE. Si no es así, tendrás problemas más adelante. Resuelve cuanto antes, si no lo has hecho ya, el tema de las fechas. Si tienes muchos datos ingresados con el formato erróneo, podremos ayudarte a hacer un traslado, pero no dejes varchar para manejar fechas: no te servirá de nada.

Etiquetas: dos, tablas, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:30.