2017-11-27 3 views
0

Ich versuche, eine VIEW-Abfrage in MySQL zu schreiben. Dies sind die folgenden meine Fragen.Syntaxfehler während der VIEW-Erstellung in MySQL

und wenn ich auf MySQL laufen, erhalte ich folgende Fehlermeldung.

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

aber laut MySQL-Dokument, kann ich sehen CREATE VIEW AS WITH existiert. Noch fehlt mir ein Syntaxfehler? Irgendein Vorschlag bitte

+0

was die MySQL-Version Sie ausführen? –

+0

MySQL 5.7.12. Wir können auch in http://rextester.com/l/mysql_online_compiler online kompilieren – user39320

+0

Unterstützung für CTE (WITH-Klausel) wurde in Version 8.0 hinzugefügt. Frühere Versionen unterstützen dies nicht. –

Antwort

1

So, wie man diese Fragen in MySQL schreibt 5.7.12?

Verwenden Sie entweder Unterabfragen oder erstellen Sie mehrere Ansichten.

1) Unterabfragen

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) Separate Ansichten

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; 
+0

'ORDER BY S.ID' ist erforderlich? oder nicht ? – user39320

+0

@ user39320 Das Endergebnis bestellen. Es macht keinen Sinn, in Subqueries in diesem Fall 'order by' zu verwenden. –

+0

ok. Vielen Dank ... – user39320