為什麼圖中的代碼,
子查詢裡面的from只有orders這個表沒有customers這個表呢?
我覺得括號裡面from應該有customers,是因為我覺得SQL會先運行括號裡面的內容.但實際順序是怎樣的呢?
你這是SELECT裡面的子查詢,表示用customers.cust_id到orders裡面去查找相關的訂單數量
並且這時候的子查詢每次SELECT只能是出一個值,不允許在select中的子查詢查找出多個值,或者多列值。
改寫為JOIN相當於:
SELECT c.cust\_name,
c.cust\_state,
o.order_cn AS orders
FROM customers c
LEFT JOIN (SELECT COUNT(*) AS order_cn,cust_id
FROM orders) o
ON c.cust_id = o.cust_id
ORDER BY c.cust\_name