Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Views:Tham chiếu một trường được tính toán (theo tên) trong một trường được tính toán khác

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chọn các hàng có id từ một bảng khác

  2. kết nối java với Mysql bằng Mysql-connector / j

  3. Thứ tự MySQL theo nhóm trước

  4. Cú pháp tìm kiếm toàn văn bản MySQL thay thế

  5. MySQL Vấn đề đối sánh nhiều sở thích