sql >> Databáze >  >> RDS >> Mysql

Proč je daná syntaxe platná v mysql?

Je to alternativa UNION syntaxe s koncovým ORDER BY .

Takto vypadá spojení mezi dvěma výběry:

(SELECT ...)
UNION
(SELECT ...) ORDER BY ... LIMIT ...

A to je takové spojení mezi jedním výběr vypadá takto:

(SELECT ...) ORDER BY ... LIMIT ...

Vůbec nesouvisí s dílčími dotazy.

Toto není zdokumentováno v MySQL, ale je zřejmé z gramatika :

top_level_select_init:
        SELECT_SYM
        {
            Lex->sql_command= SQLCOM_SELECT;
        }
        select_init2
        | '(' select_paren ')' union_opt
        ;


/* Need select_init2 for subselects. */
union_select_init:
        SELECT_SYM select_init2
        | '(' select_paren ')' union_opt
        ;

...

union_opt:
        /* Empty */ { $$= 0; }
        | union_list { $$= 1; }
        | union_order_or_limit { $$= 1; }
        ;


  1. Jak mohu uniknout vstupu do databáze MySQL v Pythonu3?

  2. Kdy zvolit Oracle před MySQL?

  3. Jak spravovat uživatele a autentizaci v MySQL

  4. Mysql vloží náhodné datum a čas v daném rozsahu data a času