为什么图中的代码,
子查询里面的from只有orders这个表没有customers这个表呢?
我觉得括号里面from应该有customers,是因为我觉得SQL会先运行括号里面的内容.但实际顺序是怎样的呢?
为什么图中的代码,
子查询里面的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