Digamos que tengo un juego donde se formula una pregunta, las personas publican las respuestas que se puntúan y las 10 respuestas principales ganan. Tengo una base de datos SQL que almacena toda esta información, por lo que podría tener tablas como Usuarios, Preguntas y Respuestas. La tabla de respuestas tiene foreign_keys user_id y question_id, y atributo total_score.Seleccione los artículos que son los mejores N resultados para una tabla relacionada
Obviamente, para una pregunta en particular que pueda recuperar los 10 Respuestas superior con un orden y límite:
SELECT * FROM Responses WHERE question_id=? ORDER BY total_score DESC LIMIT 10;
Lo que estoy buscando es una manera de que pueda determinar, para un usuario particular, una lista de todas sus respuestas que son ganadores (en el top 10 para su pregunta particular). Es simple programar paso a paso cada Respuesta y ver si está incluida entre las 10 principales para su Pregunta, pero me gustaría optimizar esto, así que no estoy haciendo N + 1 consultas donde N es el número de Respuestas que el Usuario ha enviado .
StackOverflow 2.0? Lo siento, no pude evitarlo ... –
lol! Lo curioso es que no me di cuenta de que mi ejemplo describe StackOverflow hasta que lo señalaste. Así es como mi cerebro está trabajando hoy. – MikeJ