Vì các truy vấn con không được phép trong các chế độ xem, bạn sẽ cần phải mô phỏng chúng bằng cách tạo nhiều chế độ xem.
Ví dụ:truy vấn này sẽ giải quyết vấn đề của bạn nếu được thực thi trực tiếp:
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;
Theo tài liệu MySQL các khung nhìn có hạn chế là không thể chứa các truy vấn con trong mệnh đề FROM. Để khắc phục hạn chế này và biến truy vấn này thành một dạng xem, hãy chia nó thành 3 dạng xem (một dạng cho mỗi truy vấn con) với dạng cuối cùng đưa ra kết hợp các trường mong muốn:
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;