sql >> Databáze >  >> RDS >> Mysql

Zobrazení MySQL:Odkazování na jedno vypočítané pole (podle názvu) v jiném vypočítaném poli

Vzhledem k tomu, že dílčí dotazy nejsou v zobrazeních povoleny, budete je muset simulovat vytvořením více zobrazení.

Například tento dotaz vyřeší váš problém, pokud je přímo spuštěn:

SELECT 
    TotalCircles + TotalSquares AS TotalShapes
FROM
    (SELECT 
        BlueCirles + RedCircles AS TotalCircles,
        BlueSquares + RedSquares AS TotalSquares
    FROM
        (SELECT
            2 AS BlueCirles,
            3 AS RedCircles,
            4 AS BlueSquares,
            5 AS RedSquares
        ) AS shapes
    ) as totals;

Podle dokumentace MySQL pohledy mají omezení, že nemohou obsahovat poddotazy v klauzuli FROM. Chcete-li toto omezení obejít a změnit tento dotaz na zobrazení, rozdělte jej do 3 zobrazení (jedno pro každý dílčí dotaz), přičemž poslední poskytuje požadovanou kombinaci polí:

CREATE VIEW shapes AS
SELECT
    2 AS BlueCirles,
    3 AS RedCircles,
    4 AS BlueSquares,
    5 AS RedSquares;

CREATE VIEW totals AS
SELECT 
    BlueCirles + RedCircles AS TotalCircles,
    BlueSquares + RedSquares AS TotalSquares
FROM
    shapes;

CREATE VIEW result AS
SELECT 
    TotalCircles + TotalSquares AS TotalShapes
FROM
    totals;

SELECT * FROM result;


  1. Přesné stránkování s levými spoji

  2. MySQL:Ignorujte vybraný sloupec při použití DISTINCT

  3. Jak zazipovat soubor v PL/SQL?

  4. Rozdělit řetězec s novým řádkem a přidat pole v PL sql Oracle