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

Geben Sie für jede Zeile in der Tabelle ganz links nur eine Zeile aus der Tabelle ganz rechts zurück

Verwendung:

  SELECT u.id,
         u.name,
         MIN(t.spent) AS spent
    FROM USERS u
    JOIN TRANSACTIONS t ON t.uid = u.id
GROUP BY u.id, u.name

Beachten Sie, dass dadurch nur Benutzer zurückgegeben werden, die mindestens einen TRANSACTIONS-Datensatz haben. Wenn Sie Benutzer sehen möchten, die keine unterstützenden Aufzeichnungen haben, sowie diejenigen, die dies tun - verwenden Sie:

   SELECT u.id,
          u.name,
          COALESCE(MIN(t.spent), 0) AS spent
     FROM USERS u
LEFT JOIN TRANSACTIONS t ON t.uid = u.id
 GROUP BY u.id, u.name