/ / Jak wykonać zapytanie za pomocą instrukcji INSERT INTO i WITH? - mysql, sql

Jak wykonać kwerendę za pomocą instrukcji INSERT INTO i WITH? - mysql, sql

INSERT INTO tablename( columnname1, columnname2, columnaname2)
WITH
a AS
SELECT * FROM tablename
WHERE condition
),
b AS
SELECT * FROM tablename
WHERE condition
)

Mam kilka wierszy zapytania poniżej, gdzie używam instrukcji DISTINCT, ale chciałbym wiedzieć na razie, czy moje zapytanie powyżej jest poprawne, czy nie.

Odpowiedzi:

2 dla odpowiedzi № 1

WITH? Zostanie to wprowadzone w MySQL 8.0. Czy używasz wersji zapoznawczej? W przeciwnym razie nie będziesz w stanie użyć WITH w MySQL.

W każdym razie: A WITH Klauzula należy na początku oświadczenia: WITH ... INSERT .... Spójrz tutaj: https://dev.mysql.com/doc/refman/8.0/en/with.html.

Wygląda jednak na to, że nawet nie używasz swoich CTE a i b. Twoje WRT również nie mają nawiasów. Twoja instrukcja powinna wyglądać mniej więcej tak:

WITH a AS (SELECT * FROM tablename WHERE condition)
, b AS (SELECT * FROM tablename WHERE condition)
INSERT INTO tablename(columnname1, columnname2, columnaname2)
SELECT col1, col2, col3 FROM a
UNION ALL
SELECT col1, col2, col3 FROM b;