Mysql
 sql >> Database >  >> RDS >> Mysql

Trova il record più vecchio in un join tra due tabelle

Se LEFT JOIN le due tabelle, puoi utilizzare il ORDER BY clausola per fare ciò di cui hai bisogno:

SELECT *
FROM
    questions
    LEFT JOIN results
        ON results.q_id = questions.id
ORDER BY
    ISNULL(results.id) DESC, results.created ASC
LIMIT 1

Ciò posizionerà tutte le domande che non hanno risultati in cima all'elenco, seguite da un elenco di tutte le domande con risultati (nell'ordine "prima la domanda più vecchia"). Il LIMIT 1 visualizzerà solo il risultato più alto, che dovrebbe corrispondere a ciò di cui hai bisogno.