SQL - Random sin repetir

   
Vista:

Random sin repetir

Publicado por Aram (2 intervenciones) el 17/01/2010 13:33:59
Hola,

Estoy haciendo un sistema de votaciones de notícias que presenta resultados aleatorios con la sentencia:
ORDER BY RAND() LIMIT 1

Con esto, cada vez que se carga la página, muestra una notícia aleatoria de una tabla de la base de datos. El problema está en que me gustaría que cuando el usuario ya haya votado la notícia, no se le vuelva a mostrar.

Entonces he creado otra tabla donde cada vez que el usuario vota, se añade un registro con el id del usuario que está votando y en otro campo el id de la notícia que ha votado.

Y aquí me he quedado atascado. No se como hacer la sentencia WHERE

SELECT noticias.id,votadas.id_usuario,votadas.id_noticia FROM noticias
JOIN votadas
ON noticias.id = votadas.id_noticia
WHERE
???????????
ORDER BY RAND() LIMIT 1

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Random sin repetir

Publicado por Aram (2 intervenciones) el 17/01/2010 17:47:05
Me respondo a mi mismo:

SELECT noticias.id FROM noticias
WHERE
noticias.id NOT IN (SELECT votadas.id_noticia FROM votadas WHERE votadas.id_usuario = variableidusuario)
ORDER BY RAND() LIMIT 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar