Mysql JOIN多表嵌套查询

↘锁芯ラ 提交于 2020-02-03 01:35:36

网上找的大多数有关嵌套查询的都是关于 IN 的使用,比如
SELECT * FROM tab1 WHERE key IN (SELECT key2 FROM tab2)
通常来说这样的嵌套只能处理比较简单的情况,在相对复杂的情况下可能要对多个键进行配对,在这里我记录一下,可能比较乱

SELECT1.Shop AS 门店,1.Code AS 号码,1.Stock AS 股票,2.Name AS 名称
        IFNULL(临时表.Num,0) AS 销量
FROM1
LEFT JOIN2 on1.Code=2.Code
LEFT JOIN (select Code,SUM(Num) as Num from3
        where Code='111'
        group by Code ORDER BY Num DESC) as 临时表 on 临时表.Code=1.Code
where1.Date='2020-02-02'
  • SUM(Num) 使用函数后不能再直接 .Num 进行使用了,会找不到,可以加一个as使用别名
  • LEFT JOIN 后面别忘了跟上表名,我在这里使用了嵌套的查询,并赋予别名,可以直接在select后面使用SELECT IFNULL(临时表.Num,0) AS 销量
  • IFNULL(expr, val) 表示判断表达式是否为空,若为空用val替代,用以解决left join 产生的空值
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!