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

MySQL :Est-il possible de "remplir" un SELECT avec des valeurs sans table ?

Si possible, évitez de générer des données à la volée. Cela rend les requêtes très simples ridiculement complexes, mais surtout :cela embrouille l'optimiseur à n'en plus finir.

Si vous avez besoin d'une série d'entiers, utilisez une table statique d'entiers. Si vous avez besoin d'une série de dates, de mois ou autre, utilisez une table de calendrier. À moins que vous ne soyez confronté à des exigences vraiment extraordinaires, une table statique est la solution.

J'ai donné un exemple sur la façon de créer une table de nombres et une table de calendrier minimale (uniquement des dates) dans cette réponse .

Si vous avez ces tables en place, il devient facile de résoudre votre requête.

  1. Agréger les données de commande à MONTH.
  2. Joindre à droite à la table des mois (ou MOIS distinct de la table des dates)