簡體   English   中英

在MySQL中創建VIEW期間出現語法錯誤

[英]syntax error during VIEW creation in MySQL

我試圖在MySQL中編寫一個VIEW查詢。 以下是我的查詢。

CREATE VIEW SAMPLE_TEST(server, xml) AS
  WITH ServerSettings(server, ServerSettings) AS (
    SELECT
      S.ID
    FROM SERVER S
    INNER JOIN SAMPLE_MAC DMA ON S.DOMAIN = DMA.DOMAIN
    ORDER BY S.ID
  ),
  DomainSettings(server, DomainSettings) AS (
    SELECT
      S.ID,
    FROM SERVER S
    INNER JOIN DOMAIN D ON D.ID = S.DOMAIN
    ORDER BY S.ID
  )

  SELECT SS.server,
    XMLCONCAT(
      DS.DomainSettings,
      SS.ServerSettings
    )
  FROM ServerSettings SS
  INNER JOIN DomainSettings DS ON SS.server = DS.server;

當我在MySQL上運行時,出現以下錯誤消息。

right syntax to use near 'ServerSettings(server, ServerSettings) AS (
    SELECT
      S.ID
    FROM SERVE' at line 6

但是根據MySQL文檔,我可以看到CREATE VIEW AS WITH存在。 我仍然缺少任何語法錯誤嗎? 有什么建議嗎

那么如何在MySQL 5.7.12中編寫這些查詢呢?

使用子查詢或創建多個視圖。

1)子查詢

 CREATE VIEW SAMPLE_TEST(server, xml) AS
  SELECT SS.server,
    XMLCONCAT(
      DS.DomainSettings,
      SS.ServerSettings
    )
  FROM (
         SELECT S.ID AS SERVER
              , S.SERVERSETTINGS -- ?
           FROM SERVER S
          INNER JOIN SAMPLE_MAC DMA 
             ON S.DOMAIN = DMA.DOMAIN 
        ) SS
        INNER JOIN (SELECT S.ID AS SERVER,
                         ,  S.DOMAINSETTINGS -- ?
                      FROM SERVER S
                           INNER JOIN DOMAIN D 
                              ON D.ID = S.DOMAIN) DS 
           ON SS.server = DS.server;

2)分開的意見

CREATE VIEW ServerSettings AS (
    SELECT S.ID AS SERVER
         , S.SETTINGS   -- SETTING COLUMN(S)? 
      FROM SERVER S
           INNER JOIN SAMPLE_MAC DMA 
              ON S.DOMAIN = DMA.DOMAIN;

CREATE VIEW DomainSettingsAS AS (
    SELECT S.ID AS SERVER,
         , D.DOMAINSETTINGS -- DOMAIN SETTINGS COLUMN(S) 
      FROM SERVER S
             INNER JOIN DOMAIN D 
                ON D.ID = S.DOMAIN;

SELECT SS.server,
       XMLCONCAT(
             DS.DomainSettings,
             SS.ServerSettings )
  FROM ServerSettings SS
       INNER JOIN DomainSettings DS 
          ON SS.server = DS.server;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM