Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể tạo một dạng xem MySQL với một truy vấn con?


Để minh họa việc tạo chế độ xem MySQL với truy vấn con, chúng tôi sử dụng dữ liệu sau từ bảng "Cars" -

mysql> select * from cars;
+------+--------------+---------+
| ID   | Name         | Price   |
+------+--------------+---------+
|    1 | Nexa         | 750000  |
|    2 | Maruti Swift | 450000  |
|    3 | BMW          | 4450000 |
|    4 | VOLVO        | 2250000 |
|    5 | Alto         | 250000  |
|    6 | Skoda        | 1250000 |
|    7 | Toyota       | 2400000 |
|    8 | Ford         | 1100000 |
+------+--------------+---------+
8 rows in set (0.08 sec)

Bây giờ, truy vấn sau sẽ tạo một chế độ xem có tên là ‘Cars_avgprice’ bằng cách sử dụng một truy vấn con sẽ cung cấp các giá trị cho chế độ xem. Truy vấn con phải được đặt trong dấu ngoặc đơn.

mysql> Create view cars_avgprice AS SELECT NAME, Price FROM Cars WHERE price > (SELECT AVG(Price) from cars);
Query OK, 0 rows affected (0.12 sec)

mysql> Select * from cars_avgprice;
+--------+---------+
| NAME   | Price   |
+--------+---------+
| BMW    | 4450000 |
| VOLVO  | 2250000 |
| Toyota | 2400000 |
+--------+---------+
3 rows in set (0.03 sec)

Nếu chúng tôi chạy truy vấn con ở trên riêng lẻ, chúng tôi có thể hiểu cách chế độ xem nhận các giá trị của nó -

mysql> Select AVG(Price) from cars;
+--------------+
| AVG(Price)   |
+--------------+
| 1612500.0000 |
+--------------+
1 row in set (0.00 sec)

Đó là lý do tại sao chế độ xem ‘ô tô_avgprice’ có danh sách ô tô có giá cao hơn mức trung bình của giá, tức là 1612500.