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

MYSQL :Joindre une liste de valeurs dans une table

Dans MySQL, vous pouvez construire la table en utilisant union all :

select m.mode, SUM(p.amount)
from (select 'Cash' as mode union all
      select 'Card' union all
      select 'Cheque' union all
      select 'Bank'
     ) m left join
     payments p
     on m.mode = p.mode
group by m.mode;

Remarques :

  • J'ai changé name en mode donc la colonne avec les mêmes informations porte le même nom.
  • Le group by la clé doit provenir du premier nom, pas le deuxième (c'est-à-dire m.mode au lieu de p.mode ).
  • Si vous voulez 0 au lieu de NULL , puis utilisez coalesce(sum(p.amount), 0) .
  • Vous voudrez peut-être envisager une table de référence contenant les valeurs de mode.