sql >> Databáze >  >> RDS >> Mysql

Vraťte pouze jeden řádek z tabulky zcela vpravo pro každý řádek v tabulce zcela vlevo

Použijte:

  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

Pamatujte, že to vrátí pouze uživatele, kteří mají alespoň jeden záznam TRANSAKCE. Pokud chcete vidět uživatele, kteří nemají podpůrné záznamy, stejně jako ty, kteří je mají – použijte:

   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


  1. Načítání posledních vložených ID pro více řádků

  2. Vložení vícerozměrného pole php do databáze mysql

  3. Oznámení obecné dostupnosti SQL Compliance Manager 5.9

  4. Jak používat klauzuli HAVING v SQL