12、from型子查询

2018-12-05  本文已影响0人  小碧小琳

一、引出from型子查询

1.1、表 or 结果?

如果不看查询语句的话,单看“结果”,是分不清这个“结果”是表还是查询语句的结果的,比如下图

你没法分辨discount是表中固有的字段,还是前面两个字段运算的结果(查询语句的结果)。
因此,可以把查询的结果集看成一张表,因此可以对结果集,再次进行查询。

1.2、from型子查询

即,内层SQL的查询结果,当成一张临时表,供外层SQL,再次查询。

应用场景

查询每个栏目下,goods_id最大的商品。
假设有一张表,如下:

满足,每个栏目下的第一个good_id正好是最大的那个id。那么对于这个表,我们只需要再用group一次,即可得到表中每个栏目的第一个商品,那么就是我们想要的结果了。(这个group查询可能在新版本中的MySQL中认为语法错误,这里只是举个例子。)

那么怎么得到上面的特别方便的表格temp呢?可以用查询语句,得到该temp表。然后from 后面加temp表即可呀。

如下:

上面查询语句,内层sql查询语句得到temp表,然后外层再次查询一次即可。

上一篇 下一篇

猜你喜欢

热点阅读