Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Finden Sie den ältesten Datensatz in einem Join zwischen zwei Tabellen

Wenn Sie LEFT JOIN den beiden Tabellen können Sie den ORDER BY verwenden Klausel, um das zu tun, was Sie brauchen:

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

Dadurch werden alle Fragen, die keine Ergebnisse haben, an den Anfang der Liste gesetzt, gefolgt von einer Liste aller Fragen mit Ergebnissen (in der Reihenfolge „älteste Frage zuerst“). Das LIMIT 1 zeigt nur das beste Ergebnis an - das Ihren Anforderungen entsprechen sollte.