Пункт MySQL “WITH”

89
задан shA.t 28 May 2015 в 05:19
поделиться

3 ответа

Обновление: MySQL 8.0 наконец получает функцию общих выражений таблицы, включая рекурсивный CTEs.

Вот блог, объявляющий о нем: http://mysqlserverteam.com/mysql-8-0-labs-recursive-common-table-expressions-in-mysql-ctes/

Ниже является моим более ранним ответом, который я первоначально записал в 2008.

<час>

MySQL не поддерживает запросы с помощью WITH синтаксис, определенный в SQL-99, также названном Общие Выражения Таблицы.

Это было запросом новых функций для MySQL с января 2006: http://bugs.mysql.com/bug.php?id=16244

Другие продукты RDBMS, которые поддерживают общие выражения таблицы:

Другие базы данных, которые испытывают недостаток в поддержке С пунктом (по состоянию на февраль 2014):

96
ответ дан Bill Karwin 24 November 2019 в 07:20
поделиться

Oracle действительно поддерживает С.

Это было бы похоже на это.

WITH emps as (SELECT * FROM Employees)
SELECT * FROM emps WHERE ID < 20
UNION ALL
SELECT * FROM emps where Sex = 'F'

@ysth С тверд к Google, потому что это - общее слово, обычно исключенное из поисков.

Вы хотели бы посмотреть ИЗБРАННЫЕ документы , чтобы видеть, как факторинг подзапроса работает.

я знаю, что это не отвечает на OP, но я моюсь, любой беспорядок ysth, возможно, запустился.

7
ответ дан 24 November 2019 в 07:20
поделиться

You've got the syntax right:

WITH AuthorRating(AuthorName, AuthorRating) AS
   SELECT aname         AS AuthorName,
          AVG(quantity) AS AuthorRating
   FROM Book
   GROUP By Book.aname

However, as others have mentioned, MySQL does not support this command. WITH was added in SQL:1999; the newest version of the SQL standard is SQL:2008. You can find some more information about databases that support SQL:1999's various features on Wikipedia.

MySQL has traditionally lagged a bit in support for the SQL standard, whereas commercial databases like Oracle, SQL Server (recently), and DB2 have followed them a bit more closely. PostgreSQL is typically pretty standards compliant as well.

You may want to look at MySQL's roadmap; I'm not completely sure when this feature might be supported, but it's great for creating readable roll-up queries.

11
ответ дан 24 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: