Consulta sql

03/11/2004 - 10:54 por MetalManiac | Informe spam
Hola a todos, tengo una consulta que no tengo narices de resolver. Veamos

quiero obtener los campos id, asunto y fecha de una tabla pero el resultado
son muchos registros con el mismo "asunto", entonces, mi pregunta es. ¿Como
puedo hacer que no aparezcan los asuntos repetidos teniendo en cuenta que
recupero los registros ordenados por la fecha desc?

Teniendo esta tabla:


ForoMensajes id idForo idMensajePadre idusuario NickUsuario Asunto Mensaje
Fecha
1 1 0 1
¿cómo funciona? no se como va esto. Que alguien me lo explique. Gracias
12/10/2004
2 1 0 0 Mortadelo ¿Andandará? No se andandará 29/10/2004 9.59.00
3 1 2 1
RE:Andandará? Y yo que se quillo 29/10/2004 10.10.10
5 1 1 0 MetalManiac ¿cómo funciona? a pilas 02/11/2004 9.55.58
7 1 1 0 Melómano ¿cómo funciona? pues si que si 02/11/2004 10.05.26
8 1 1 0 Manolín RE:¿cómo funciona? siempre es igual 02/11/2004
10.14.32
9 1 2 0 Pruebandolotodo RE:¿Andandará? si, si y si 02/11/2004
12.26.44
10 1 1 0
RE:¿cómo funciona? dd 02/11/2004 13.57.00
11 1 1 0
RE:¿cómo funciona? v 02/11/2004 13.57.25
12 1 1 0
RE:¿cómo funciona? d 02/11/2004 13.57.47
13 1 1 1
RE:¿cómo funciona? prueba de marraás 02/11/2004 16.40.44
14 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.48.52
15 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.49.25
16 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.49.40
17 1 1 2
RE:¿cómo funciona? dsfsdfsd 02/11/2004 17.49.46
18 1 0 2
afdfdf afadsfadf 02/11/2004 17.55.28
19 1 20 2
scsd sds 02/11/2004 17.56.01
20 1 0 2
scsd sds3434 02/11/2004 18.08.11
21 1 0 0 Fernando Este foro funciona? si 03/11/2004 8.18.14
22 1 21 0 Manolín RE:Este foro funciona? claro que funciona, o lo
dudbas? 03/11/2004 8.21.43
23 1 2 1
RE:¿Andandará? pues por el monte 03/11/2004 8.22.30



Realizo esta consulta para saber qué mensajes padres (idMensajePAdre = 0)
son los que han tenido las últimas respuestas.

SELECT ForoMensajes.id, ForoMensajes.Asunto, ForoMensajes.Fecha
FROM ForoMensajes LEFT JOIN ForoMensajes AS ForoMensajes_1 ON
ForoMensajes.id = ForoMensajes_1.idMensajePadre
WHERE (((ForoMensajes.idMensajePadre)=0))
ORDER BY ForoMensajes_1.Fecha DESC;

Pues perfecto, esta consulta me devuelve esto:

id Asunto Fecha
2 ¿Andandará? 29/10/2004 9.59.00
21 Este foro funciona? 03/11/2004 8.18.14
20 scsd 02/11/2004 18.08.11
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
2 ¿Andandará? 29/10/2004 9.59.00
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
2 ¿Andandará? 29/10/2004 9.59.00
18 afdfdf 02/11/2004 17.55.28


Pero a mi me interesa que me devuelva solo una vez los registros con el
mismo id, asunto y fecha, que serían un total de 5 registros, y no los16 que
me devuelve actualmente. ¿como puedo controlar esto?. He probado group by,
distinct, etc pero me dice que debo incluir la clausula ForoMensajes_1.fecha
a la que hago referencia para ordenar, pero si hago eso entonces me
devuelven otros 16 registros por que esa fecha es diferente.

Gracias por vuestro interés.
 

Leer las respuestas

#1 Paulino Padial
03/11/2004 - 11:11 | Informe spam
Prueba usar DISTINCT y me cuentas

SELECT DISTINCT ForoMensajes.id, ForoMensajes.Asunto, ForoMensajes.Fecha
FROM ForoMensajes LEFT JOIN ForoMensajes AS ForoMensajes_1 ON
ForoMensajes.id = ForoMensajes_1.idMensajePadre
WHERE (((ForoMensajes.idMensajePadre)=0))
ORDER BY ForoMensajes_1.Fecha DESC;


MetalManiac wrote:
Hola a todos, tengo una consulta que no tengo narices de resolver. Veamos

quiero obtener los campos id, asunto y fecha de una tabla pero el resultado
son muchos registros con el mismo "asunto", entonces, mi pregunta es. ¿Como
puedo hacer que no aparezcan los asuntos repetidos teniendo en cuenta que
recupero los registros ordenados por la fecha desc?

Teniendo esta tabla:


ForoMensajes id idForo idMensajePadre idusuario NickUsuario Asunto Mensaje
Fecha
1 1 0 1
¿cómo funciona? no se como va esto. Que alguien me lo explique. Gracias
12/10/2004
2 1 0 0 Mortadelo ¿Andandará? No se andandará 29/10/2004 9.59.00
3 1 2 1
RE:Andandará? Y yo que se quillo 29/10/2004 10.10.10
5 1 1 0 MetalManiac ¿cómo funciona? a pilas 02/11/2004 9.55.58
7 1 1 0 Melómano ¿cómo funciona? pues si que si 02/11/2004 10.05.26
8 1 1 0 Manolín RE:¿cómo funciona? siempre es igual 02/11/2004
10.14.32
9 1 2 0 Pruebandolotodo RE:¿Andandará? si, si y si 02/11/2004
12.26.44
10 1 1 0
RE:¿cómo funciona? dd 02/11/2004 13.57.00
11 1 1 0
RE:¿cómo funciona? v 02/11/2004 13.57.25
12 1 1 0
RE:¿cómo funciona? d 02/11/2004 13.57.47
13 1 1 1
RE:¿cómo funciona? prueba de marraás 02/11/2004 16.40.44
14 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.48.52
15 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.49.25
16 1 1 2
RE:¿cómo funciona? sdfdsfds 02/11/2004 17.49.40
17 1 1 2
RE:¿cómo funciona? dsfsdfsd 02/11/2004 17.49.46
18 1 0 2
afdfdf afadsfadf 02/11/2004 17.55.28
19 1 20 2
scsd sds 02/11/2004 17.56.01
20 1 0 2
scsd sds3434 02/11/2004 18.08.11
21 1 0 0 Fernando Este foro funciona? si 03/11/2004 8.18.14
22 1 21 0 Manolín RE:Este foro funciona? claro que funciona, o lo
dudbas? 03/11/2004 8.21.43
23 1 2 1
RE:¿Andandará? pues por el monte 03/11/2004 8.22.30



Realizo esta consulta para saber qué mensajes padres (idMensajePAdre = 0)
son los que han tenido las últimas respuestas.

SELECT ForoMensajes.id, ForoMensajes.Asunto, ForoMensajes.Fecha
FROM ForoMensajes LEFT JOIN ForoMensajes AS ForoMensajes_1 ON
ForoMensajes.id = ForoMensajes_1.idMensajePadre
WHERE (((ForoMensajes.idMensajePadre)=0))
ORDER BY ForoMensajes_1.Fecha DESC;

Pues perfecto, esta consulta me devuelve esto:

id Asunto Fecha
2 ¿Andandará? 29/10/2004 9.59.00
21 Este foro funciona? 03/11/2004 8.18.14
20 scsd 02/11/2004 18.08.11
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
2 ¿Andandará? 29/10/2004 9.59.00
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
1 ¿cómo funciona? 12/10/2004
2 ¿Andandará? 29/10/2004 9.59.00
18 afdfdf 02/11/2004 17.55.28


Pero a mi me interesa que me devuelva solo una vez los registros con el
mismo id, asunto y fecha, que serían un total de 5 registros, y no los16 que
me devuelve actualmente. ¿como puedo controlar esto?. He probado group by,
distinct, etc pero me dice que debo incluir la clausula ForoMensajes_1.fecha
a la que hago referencia para ordenar, pero si hago eso entonces me
devuelven otros 16 registros por que esa fecha es diferente.

Gracias por vuestro interés.


Preguntas similares