Mysql
 sql >> Database >  >> RDS >> Mysql

MYSQL:unisci l'elenco di valori in una tabella

In MySQL, puoi costruire la tabella usando 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;

Note:

  • Ho cambiato name in mode quindi la colonna con le stesse informazioni ha lo stesso nome.
  • Il group by la chiave deve provenire dalla prima nome, non il secondo (ovvero m.mode invece di p.mode ).
  • Se vuoi 0 invece di NULL , quindi usa coalesce(sum(p.amount), 0) .
  • Potresti prendere in considerazione una tabella di riferimento che contenga i valori della modalità.