请教一下各位,由于我看“标量子查询”的介绍是子查询必须且只能返回1行1列的结果,所以就产生了一个问题——
语句1—SELECT order_num FROM orderitems WHERE prod_id='TNT2';(返回结果是两项:20005和20007)
语句2—SELECT cust_id FROM orders WHERE order_num IN (20005,20007);
合并语句1和语句2,组成语句3—
SELECT cust_id FROM orders WHERE order_num IN
(SELECT order_num FROM orderitems WHERE prod_id='TNT2');
请问合并后的语句3是标量子查询吗?因为不是说标量子查询只能返回一列一行数据吗?但是语句3中的子查询返回了两项数据呀,20005和20007。
标量子查询就是这样的:
SELECT T1.ID
,(SELECT NAME FROM TABLE2 T2 WHERE T1.ID = T2.ID ) AS NAME
FROM T1
这个是你的SQL: 这种SQL叫内联视图。
SELECT cust_id FROM orders WHERE order_num IN
(SELECT order_num FROM orderitems WHERE prod_id='TNT2');
我理解是:标量子查询在子查询语句中查询单个值,并将结果插入到父查询的结果集中。它返回单个标量值(例如数字、字符串或日期)而不是返回多个行或列
感觉你的公众号写的不错 怎么不更新了?