网上找的大多数有关嵌套查询的都是关于 IN 的使用,比如SELECT * FROM tab1 WHERE key IN (SELECT key2 FROM tab2)
通常来说这样的嵌套只能处理比较简单的情况,在相对复杂的情况下可能要对多个键进行配对,在这里我记录一下,可能比较乱
SELECT 表1.Shop AS 门店,
表1.Code AS 号码,
表1.Stock AS 股票,
表2.Name AS 名称
IFNULL(临时表.Num,0) AS 销量
FROM 表1
LEFT JOIN 表2 on 表1.Code=表2.Code
LEFT JOIN (select Code,SUM(Num) as Num from 表3
where Code='111'
group by Code ORDER BY Num DESC) as 临时表 on 临时表.Code=表1.Code
where 表1.Date='2020-02-02'
- SUM(Num) 使用函数后不能再直接 .Num 进行使用了,会找不到,可以加一个as使用别名
- LEFT JOIN 后面别忘了跟上表名,我在这里使用了嵌套的查询,并赋予别名,可以直接在select后面使用
SELECT IFNULL(临时表.Num,0) AS 销量
- IFNULL(expr, val) 表示判断表达式是否为空,若为空用val替代,用以解决left join 产生的空值
来源:CSDN
作者:第六帅
链接:https://blog.csdn.net/baidu_41743195/article/details/104149193