Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо даденият синтаксис е валиден в mysql?

Това е алтернативният UNION синтаксис с окончателен ORDER BY .

Ето как изглежда един такъв съюз между два избрани:

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

И това е един такъв съюз между един select изглежда така:

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

Изобщо не е свързано с подзаявки.

Това не е документирано в MySQL, но е очевидно от граматика :

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намеря всички таблици, които имат външни ключове, които препращат към определена table.column и имат стойности за тези външни ключове?

  2. MySQL- Не може да се премине към ред 0 на MySQL резултатния индекс

  3. MemoryError при използване на json.dumps()

  4. Django ManyToMany с множество бази данни

  5. C# Mysql UTF8 кодиране