2020.05.21记录小问题~

需求:返回所有分类,以及分类(id,name,img,desc...)下的所有商品(id,name,img)

最初想法:第一次执行sql拿到所有分类,第二次循环result,按每个分类ID执行sql获取对应的商品

现实:出现异步问题,第二次循环sql还没执行就res.json()了

怎么办呢,尝试了两种办法都有效的解决了问题!!

解决方案一:

通过mysql的 GROUP_CONCAT 来解决,把所有商品的详情拼装成string,每个商品之间用特定符号分隔,类似网络请求时url的参数拼接思路

解决方案二:

起初是考虑用async await异步实现,在一位评论区大佬那里受到了启发! 如下图

突然想起来,join虽然会有很多行,看起来冗余,但是是可以通过node端处理掉成想要的格式的!

参考代码贴出来!

1     2 let categoryArr =[]3 for (var i =0; i item.category_id ===Cid)7 console.log(hasIndex)8 if (hasIndex !== -1) {9 categoryArr[hasIndex].products.push({10 product_id: result0[i].product_id,11 product_name: result0[i].product_name,12 main_img_url: result0[i].main_img_url13 })14 } else{15 categoryArr.push({16 category_id: result0[i].category_id,17 category_name: result0[i].category_name,18 description: result0[i].description,19 url: result0[i].url,20 products: [{21 product_id: result0[i].product_id,22 product_name: result0[i].product_name,23 main_img_url: result0[i].main_img_url24 }]25 })26 }27 }

参考自: https://cloud.tencent.com/developer/ask/185664  评论区!

原文:https://www.cnblogs.com/zhuxingqing/p/12933843.html

nodejs mysql嵌套查询_nodejs+mysql嵌套查询的问题相关推荐

  1. nodejs mysql嵌套查询_node.js,_nodejs mysql查询内嵌套修改,node.js - phpStudy

    nodejs mysql查询内嵌套修改 http://www.cnblogs.com/kongxi... 我通过这个案例 把查询 内 再嵌套一个update为什么就报错了呢 应该怎么写 假如我先取出s ...

  2. as mysql with 嵌套_MySQL_MySQL的嵌套查询,MySQl从4.11版后已经完全支持嵌 - phpStudy

    MySQL的嵌套查询 MySQl从4.11版后已经完全支持嵌套查询了,那么下面举些简单的嵌套查询的例子吧(源程序来自MySQL User Manual): 1. SELECT语句的子查询 语法:    ...

  3. MySQL 基础 -- 多表关系(一对一、1对多(多对一)、多对多)、多表查询(内连接、外连接、自连接、子查询(嵌套查询)、联合查询 union)、笛卡儿积

    文章目录 1. 多表关系 1.1 一对多 1.2 多对多 1.3 一对一 2. 多表查询 2.1 数据准备 2.2 概述 2.3 笛卡尔积 2.4 多表查询分类 3. 内连接 3.1 示例1:查询每一 ...

  4. mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率

    当数据库中含有大量数据时,而我们所需要的信息不再是仅仅局限于一个表中的数据信息,这时我们需要将对一个表进行信息查询转而变成对多个表进行信息搜索并进行组合. 解决这样的问题我们通常是运用嵌套查询的方法, ...

  5. 子查询(嵌套查询)——MySQL

    文章目录 子查询(嵌套查询) 标准子查询 列子查询(多行子查询) 行子查询 select后面的子查询 from后面的子查询 exists后面(相关子查询) 子查询(嵌套查询) 出现在其他语句中的sel ...

  6. mysql中in嵌套多层时_sql 嵌套查询 in

    嵌套查询是将一个select 查询放到另一个查询的where  子句中去 如:查询"xx"同学的所修课程及分数 1.先选择姓名为"xx"的同学的学号 selec ...

  7. mysql中的exists嵌套_基于mysql 的exists 嵌套查询的详解

    select Sname from Student where not exists (select * from Course where not exists (select * from SC ...

  8. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  9. Linux命令:MySQL系列之五--SELECT单表查询、多表查询升级及删除,插入

    SELECT:查询 SELECT select-list FROM tb WHERE qualification  根据标准qualification查找对应的行 查询语句类型:  qualifica ...

  10. mysql筛选字符个数为8的_听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)...

    一 . 常用查询介绍 1.创建表结构并插入内容 创建一个表 里面有id 毕业院校 家庭住址 name mysql> create table gou(id int primary key,sch ...

最新文章

  1. HarmonyOS UI开发 PositionLayout(位置布局) 的使用
  2. 【c语言】蓝桥杯算法训练 十进制数转八进制数
  3. iOS 通知观察者的被调函数不一定运行在主线程
  4. 装饰器 -- 函数装饰器(tornado异常响应装饰器)
  5. WINCE字体动态加载
  6. vim简单命令教程-firstblood
  7. 高德地图上线车道级导航 华为Mate 40用户可尝鲜体验
  8. python示例异常处理与程序调试_Python错误处理及代码调试方
  9. 如何从GET参数获取值?
  10. tcpserver检测断开qt_QTcpServer或QTcpClient(在服务器端)知道,已连接的客户端现已断开连接...
  11. 使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法
  12. 安大计算机学院导师有姓汪的,汪西莉-陕西师范大学计算机科学学院
  13. 浅谈泰勒公式与麦克劳林公式
  14. Java开发关键技术
  15. 索尼笔记本E系列,关闭触摸板
  16. Android6.0 高通平台 is 32-bit instead of 64-bit 问题
  17. php 网站在线客服,网页在线客服PHP源码含APP
  18. 急!急!急!如何申请公网ip
  19. statement suspended, wait error to be cleared
  20. hadoop入门教程免费下载

热门文章

  1. cad导出pdf_MxCAD云图DWG转PDF
  2. python知识图谱构建
  3. Linux部署django项目最全,linux部署django项目流程(全)
  4. Java调用第三方平台发送手机短信
  5. GD32实战6__串口读写
  6. Vocaloid简介
  7. Unhandled exception. System.NullReferenceException: Object reference not set to an....
  8. 使用c#制作赛尔号登录器
  9. 在html页面中加入矢量图,在html中引用矢量图
  10. HDFS之存储优化纠删码原理、纠删码案例实操 、异构存储(冷热数据分离)