Mysql
 sql >> база данни >  >> RDS >> Mysql

Изгледи на MySQL:Позоваване на едно изчисляемо поле (по име) в друго изчисляемо поле

Тъй като подзаявките не са разрешени в изгледи, ще трябва да ги симулирате чрез създаване на множество изгледи.

Например, тази заявка ще реши проблема ви, ако бъде изпълнена директно:

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;

Според документацията на MySQL изгледите имат ограничението да не могат да съдържат подзаявки в клаузата FROM. За да заобиколите това ограничение и да превърнете тази заявка в изглед, разделете я на 3 изгледа (по един за всяка подзаявка), като последният дава желаната комбинация от полета:

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. Защо символите на Unicode се показват правилно в базата данни, но като ? когато се отпечатва в Java чрез Hibernate?

  2. SQL:ДОБАВЯНЕ &МИНУС въз основа на типа на полето

  3. Вмъкнете клиентски вход в MySQL база данни с C

  4. Създаване на синтактична грешка на таблицата

  5. Как да генерирате уникална произволна стойност за всеки потребител в laravel и да я добавите към базата данни