Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Kann man ein SELECT ohne Tabelle mit Werten 'füllen'?

Versuchen Sie nach Möglichkeit, sich von der spontanen Generierung von Daten fernzuhalten. Es macht sehr einfache Abfragen lächerlich komplex, aber vor allem:es verwirrt den Optimierer ohne Ende.

Wenn Sie eine Reihe von Ganzzahlen benötigen, verwenden Sie eine statische Tabelle mit Ganzzahlen. Wenn Sie eine Reihe von Daten, Monaten oder was auch immer benötigen, verwenden Sie eine Kalendertabelle. Wenn Sie es nicht mit wirklich außergewöhnlichen Anforderungen zu tun haben, ist eine statische Tabelle die richtige Wahl.

Ich habe ein Beispiel gegeben, wie man eine Zahlentabelle und eine minimale Kalendertabelle (nur Daten) in diese Antwort .

Wenn Sie diese Tabellen haben, wird es einfach, Ihre Anfrage zu lösen.

  1. Aggregieren Sie die Bestelldaten zu MONTH.
  2. Right Join zur Monatstabelle (oder unterschiedlicher MONTH aus der Datumstabelle)