
1 wqzjk393 2019-11-01 16:16:33 +08:00 select xx from a where a.xx=b.xx,就类似与 select xx from a inner join b on a.xx=b.xx 吧 |
2 yEhwG10ZJa83067x 2019-11-01 16:24:56 +08:00 看了没有问题啊,需要输出每一个消费者的订单数,这个 a.xx=b.xx 不就是解决输出每个人的订单数量。不然你怎么一步输出每个人的订单数量,难道一个个 cust_id 去执行吗,那如果有 1 万个客户呢,执行一万次才能得出? |
3 yEhwG10ZJa83067x 2019-11-01 16:27:43 +08:00 where orders.cust_id = xxxx 这种形式一次只能统计一个用户的订单数而且必须知道 cust_id 才行 a.xx=b.xx 可以一次得出每个人的订单数量而且不需要知道具体 cust_id |
4 U7Q5tLAex2FI0o0g &nsp; 2019-11-01 16:30:02 +08:00 这……是……是很基础很基础的知识点吧。。。 |
5 mwiker 2019-11-01 16:30:56 +08:00 首先看清题目,重点[对每个客户]。 |
6 luopengfei14 2019-11-01 16:31:26 +08:00 临时性的表? |
7 eason1874 2019-11-01 16:37:52 +08:00 没毛病,我记得是可以这样用,类似 JOIN 的 ON tableA.cust_id = tableB.cust_id 这例子里肯定要这样写啊,如果指定 cust_id 为固定值,那所有结果里的 orders 结果都是同一个客户的了。 |
8 Canvas26 2019-11-01 16:39:52 +08:00 你这是基础都没理解好吧,from 表 where 确定行,最后 select 选出需要的列 这里涉及两张表,name 和 state 在第一张表里,而订单数要到另一张表里找,根据什么找?根据两表的共同字段 id 找,当你输出 coyote inc.的时候,id 就是 10001,当你输出 E Fudd 的时候,id 就是 10005,这里就是一个“变化”的确定值 |
9 mynamewang0 2019-11-01 16:55:28 +08:00 mysql 我用的不多,不过你问的是 SQL 基本知识。过程我猜应该是,先全扫描一次 customers 表,再取得到的 cust_id 去匹配 orders 表,返回结果。整个过程应该没用到表的连接 |
10 jowenz 2019-11-01 18:43:23 +08:00 via Android 标量子查询不就这么写么,oracle 也是这么写的 |
![]() | 11 JerryCha 2019-11-01 19:17:38 +08:00 这就是 SQL 牛逼的地方了( x ) |
12 Lipoic 2019-11-01 19:22:21 +08:00 via Android 楼主你看的书叫啥 |
13 leeg810312 2019-11-01 19:35:33 +08:00 via Android 不太习惯这样写,我觉得应该用 group by |
14 manyfreebug OP @Lipoic 刚从外面回来,《 SQL 必知必会》或者《 MySQL 必知必会》,两本书的作者是同一个人,书的很大部分是相同的。 |