sql >> Database >  >> RDS >> Mysql

Retourneert slechts één rij van de meest rechtse tabel voor elke rij in de meest linkse tabel

Gebruik:

  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

Houd er rekening mee dat dit alleen gebruikers retourneert die ten minste één TRANSACTIES-record hebben. Als u gebruikers wilt zien die geen ondersteunende records hebben, evenals gebruikers die dat wel hebben, gebruik dan:

   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. Meerdere joins in MySQL-tabel

  2. Hoe MySQL 8 op Ubuntu te installeren

  3. MySQL-deelnametabellen groeperen op somprobleem

  4. Is er een Max-functie in SQL Server die twee waarden aanneemt, zoals Math.Max ​​in .NET?