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.

Preguntas similare

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.


Respuesta Responder a este mensaje
#2 MetalManiac
03/11/2004 - 11:31 | Informe spam
Hola Paulino, ante todo gracias, pero debo decirte que no funciona, al poner
distinct y no incluir la clausula "Foromensajes_1.fecha" en el distinct me
devuelve un fallo, este es:

La cláusula ORDER BY (ForoMensajes_1.fecha) está en conflicto con DISTINCT

Dios, me está amargando esta duda.
Saludos

"Paulino Padial" escribió en el mensaje
news:uxH$
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.
>
>
Respuesta Responder a este mensaje
#3 Paulino Padial
03/11/2004 - 11:40 | Informe spam
Es verdad me habia liado con tanto ForoMensage... Pues no se, me suena
de alguna instruccion de esas de guru tipo pivot o algo asi.. luego lo
miro, siento no haberte podido ayudar, pero seguro que por aqui te daran
pronto una respuesta :).

Suerte!
MetalManiac wrote:
Hola Paulino, ante todo gracias, pero debo decirte que no funciona, al poner
distinct y no incluir la clausula "Foromensajes_1.fecha" en el distinct me
devuelve un fallo, este es:

La cláusula ORDER BY (ForoMensajes_1.fecha) está en conflicto con DISTINCT

Dios, me está amargando esta duda.
Saludos

"Paulino Padial" escribió en el mensaje
news:uxH$

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.









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida