Mysql
 sql >> Base de données >  >> RDS >> Mysql

Trouver l'enregistrement le plus ancien dans une jointure entre deux tables

Si vous LEFT JOIN les deux tables, vous pouvez utiliser le ORDER BY clause pour faire ce dont vous avez besoin :

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

Cela placera toutes les questions qui n'ont pas de résultats en haut de la liste, suivies d'une liste de toutes les questions avec des résultats (dans l'ordre "la question la plus ancienne en premier"). La LIMIT 1 il n'affichera que le meilleur résultat - qui devrait correspondre à ce dont vous avez besoin.