Ponieważ podzapytania nie są dozwolone w widokach, musisz je zasymulować, tworząc wiele widoków.
Na przykład to zapytanie rozwiąże Twój problem, jeśli zostanie wykonane bezpośrednio:
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;
Zgodnie z dokumentacją MySQL widoki mają ograniczenie polegające na tym, że nie mogą zawierać podzapytań w klauzuli FROM. Aby obejść to ograniczenie i przekształcić to zapytanie w widok, podziel je na 3 widoki (po jednym dla każdego podzapytania), przy czym ostatni daje żądaną kombinację pól:
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;