Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Localizar o registro mais antigo em uma junção entre duas tabelas


Se você LEFT JOIN as duas tabelas, você pode usar o ORDER BY cláusula para fazer o que você precisa:
SELECT *
FROM
    questions
    LEFT JOIN results
        ON results.q_id = questions.id
ORDER BY
    ISNULL(results.id) DESC, results.created ASC
LIMIT 1

Isso colocará todas as perguntas que não tiverem resultados no topo da lista, seguidas por uma lista de todas as perguntas com resultados (na ordem "mais antiga primeiro"). O LIMIT 1 fará com que ele exiba apenas o resultado principal - que deve corresponder ao que você precisa.