Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tampilan MySQL:Merujuk satu bidang terhitung (berdasarkan nama) di bidang terhitung lainnya

Karena subkueri tidak diizinkan dalam tampilan, Anda perlu mensimulasikannya dengan membuat beberapa tampilan.

Misalnya, kueri ini akan menyelesaikan masalah Anda jika dijalankan secara langsung:

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;

Menurut dokumentasi MySQL pandangan memiliki batasan untuk tidak dapat memuat subkueri dalam klausa FROM. Untuk mengatasi batasan ini dan mengubah kueri ini menjadi tampilan, bagi menjadi 3 tampilan (satu untuk setiap subkueri) dengan yang terakhir memberikan kombinasi bidang yang diinginkan:

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. cara gabung 2 tabel

  2. Gunakan kembali koneksi MySQL, warisan objek PHP

  3. Rata-rata jam SQL dalam 24 jam

  4. 'Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:TIDAK)'

  5. MySQL dan PHP - masukkan NULL daripada string kosong