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