MySQL 如何在嵌套子查询中嵌套另一个子查询?
如果在另一个子查询中嵌套了一个子查询,那么它就被称为嵌套子查询。为了更好地理解,我们将从以下表数据中创建嵌套子查询−
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 * from Customers;
+-------------+----------+
| Customer_Id | Name |
+-------------+----------+
| 1 | Rahul |
| 2 | Yashpal |
| 3 | Gaurav |
| 4 | Virender |
+-------------+----------+
4 rows in set (0.00 sec)
mysql> Select * from Reservations;
+------+-------------+------------+
| ID | Customer_id | Day |
+------+-------------+------------+
| 1 | 1 | 2017-12-30 |
| 2 | 2 | 2017-12-28 |
| 3 | 2 | 2017-12-29 |
| 4 | 1 | 2017-12-25 |
| 5 | 3 | 2017-12-26 |
+------+-------------+------------+
5 rows in set (0.00 sec)
以下是嵌套子查询−
mysql> Select * from Customers where customer_id IN (Select Customer_id from reservations where id = (Select id from cars WHERE name = 'BMW'));
+-------------+---------+
| Customer_Id | Name |
+-------------+---------+
| 2 | Yashpal |
+-------------+---------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程