如何將子查詢轉換為 RIGHT JOIN?
為便於理解,我們將使用下列表格中的資料 −
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 Reserve; +------+------------+ | ID | Day | +------+------------+ | 1 | 2017-12-30 | | 2 | 2017-12-28 | | 2 | 2017-12-25 | | 1 | 2017-12-24 | | 3 | 2017-12-26 | +------+------------+ 5 rows in set (0.00 sec)
現在,這是一個子查詢,它將找到所有尚未預訂任何汽車的客戶的姓名。
mysql> Select Name from customers where customer_id NOT IN (Select id From reserve); +----------+ | Name | +----------+ | Virender | +----------+ 1 row in set (0.00 sec)
現在,我們可以藉助以下步驟將上述子查詢轉換為 RIGHT JOIN −
將子查詢中命名的“客戶”表移到 FROM 子句,並使用 RIGHT JOIN 將其與“預訂”連線。
WHERE 子句將 customer_id 列與子查詢返回的 ID 進行比較。因此,將 IN 表示式轉換為兩個表格的 id 列之間的顯式直接比較,在 FROM 子句中。
在 WHERE 子句中,將輸出限制為在“預訂”表中具有 NULL 的那些行。
mysql> SELECT Name from reserve RIGHT JOIN customers ON customer_id = Id WHERE Id IS NULL; +----------+ | Name | +----------+ | Virender | +----------+ 1 row in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP