Pokúsim sa to čo najviac zovšeobecniť:
Chcem vypísať dáta z určitého rozsahu prvkov - napríklad 1 až 9. Data mám v tabuľke t_data, no nemusí v nej byť záznam pre každý prvok. Chcem query, ktoré vypíše pre každý prvok z rozsahu jeden riadok, aj keď preň dáta neexistujú.
Tu je príklad, ako to riešim teraz - pomocou pomocnej tabuľky, ktorú musím vygenerovať tak, že obsahuje všetky prvky rozsahu:
SELECT t_items.N, t_items t_data
t_data.Hodnota +---+ +---+---------+
FROM t_items LEFT JOIN t_data | N | | N | Hodnota |
ON t_items.N = t_data.N +---+ +---+---------+
| 1 | | 1 | 3 |
+---+---------+ | 2 | | 5 | 4 |
| N | Hodnota | | 3 | | 8 | -5 |
+---+---------+ | 4 | +---+---------+
| 1 | 3 | | 5 |
| 2 | | | 6 |
| 3 | | | 7 |
| 4 | 4 | | 8 |
| 5 | | | 9 |
| 6 | | +---+
| 7 | |
| 8 | -5 |
| 9 | |
+---+---------+
Vedel by mi niekto poradiť ako dosiahnuť rovnaký výsledok bez tej pomocnej tabuľky?
Napadá ma, ak by som vedel napísať query, koré by takúto tabuľku vygenerovalo, dala by sa použiť ako sub-query.
Niečo ako "SELECT 1 až 9"...existuje niečo také?