Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แนวคิดของตารางที่ได้รับที่เกี่ยวข้องกับแบบสอบถามย่อย MySQL คืออะไร


ที่จริงแล้ว เมื่อแบบสอบถามย่อยของ MySQL เริ่มต้นที่ส่วนคำสั่ง FROM ชุดผลลัพธ์ที่สร้างขึ้นจะเรียกว่าตารางที่ได้รับ แบบสอบถามย่อยประเภทดังกล่าวที่สร้างตารางที่ได้รับจะเรียกว่าข้อความค้นหาย่อยที่เป็นรูปธรรม สามารถเข้าใจได้ด้วยความช่วยเหลือของตัวอย่างต่อไปนี้ซึ่งใช้ข้อมูลจากตาราง 'รถยนต์' -

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.02 sec)

ตอนนี้ แบบสอบถามต่อไปนี้จะสร้างตารางที่ได้รับ -

mysql> Select AVG(P) FROM(SELECT Name, SUM(Price) P FROM cars GROUP BY Name)AS totals;
+--------------+
| AVG(P)       |
+--------------+
| 1612500.0000 |
+--------------+
1 row in set (0.76 sec)

ตารางที่ได้รับข้างต้นจะคืนค่าราคารวมของรถยนต์แต่ละคัน จากนั้นเคียวรีภายนอกจะส่งกลับค่าเฉลี่ย

เราต้องระบุนามแฝงสำหรับตารางที่ได้รับทั้งหมด ในกรณีนี้ เราได้ให้นามแฝงของผลรวมของตารางที่ได้รับ

ถ้าเราเรียกใช้เฉพาะแบบสอบถามย่อย เราจะเห็นตารางที่ได้รับ -

mysql> SELECT Name, SUM(Price) P FROM cars GROUP BY Name ;
+--------------+---------+
| Name         | P       |
+--------------+---------+
| Alto         | 250000  |
| BMW          | 4450000 |
| Ford         | 1100000 |
| Maruti Swift | 450000  |
| Nexa         | 750000  |
| Skoda        | 1250000 |
| Toyota       | 2400000 |
| VOLVO        | 2250000 |
+--------------+---------+
8 rows in set (0.03 sec)