Sequelize 子查询 sequelize sqlMessage: “Unknown column ‘course.id

nodejs 查询课程列表需要在订单表里查询购买数量,使用的是sequelize.literal,本地查询没问题,放到服务器一直报错,各位大佬帮忙看下,谢谢。

查询:

    const courses = await this.findAll({
      limit: pageSize, // total num
      offset: (currPage - 1) * (pageSize), // current page
      where: filter,
      order,
      attributes: {
        include: [
          [Sequelize.literal(`(SELECT COUNT(*) FROM wx_pay WHERE wx_pay.goods_id = course.id)`), 'orderCount'],
          [Sequelize.literal(`(SELECT COUNT(*) FROM video_list WHERE video_list.vid = course.id)`), 'lessonCount']
        ]
      },
      include: [{
        model: Category,
        as: 'category',
        attributes: ['id', 'name']
      }, {
        model: Teacher,
        as: 'teacher',
        attributes: ['id', 'title', 'avatar', 'description']
      }
      ]
    })

本地返回结果是对的,没问题【lessonCount 和 orderCount】

{
    "code": 200,
    "msg": "success",
    "errorCode": 0,
    "data": {
        "data": [
            {
                "id": 4366,
                "title": "اباي جولى رومانىنىڭ قىسقاشا مازمۇنى-كەسكىندى نۇسقا",
                "orderCount": 3,
                "lessonCount": 28,
                "category": {
                    "id": 76,
                    "name": "اۋديو كىتاپ"
                },
                "teacher": {
                    "id": 20,
                    "title": "ارنا ءبىلىم قامباسى",
                    "avatar": "https://qazkitap.otirar.com/16549365961501382-20220611-file.png",
                    "description": ""
                }
            },
            {
                "id": 4365,
                "title": "ءادىل احمەتوۆتىڭ ءومىرى جانە ونەرى ءجايىندا سۇحبات",
                "orderCount": 4,
                "lessonCount": 1,
                "category": {
                    "id": 81,
                    "name": "سۇحبات"
                },
                "teacher": {
                    "id": 20,
                    "title": "ارنا ءبىلىم قامباسى",
                    "avatar": "https://qazkitap.otirar.com/16549365961501382-20220611-file.png",
                    "description": ""
                }
            }
        ],
        "meta": {
            "pagenum": 1,
            "pagesize": 2
        }
    }
}

放到云服务器找不到字段,报这个错误

readable:289:9)
0|bilim    |       at Socket.Readable.push (node:internal/streams/readable:228:10) {
0|bilim    |     code: 'ER_BAD_FIELD_ERROR',
0|bilim    |     errno: 1054,
0|bilim    |     sqlState: '42S22',
0|bilim    |     sqlMessage: "Unknown column 'course.id' in 'where clause'",
0|bilim    |     sql: 'SELECT `Course`.`id`, `Course`.`title`, `Course`.`image`, `Course`.`cate_id`, `Course`.`status`, `Course`.`description`, `Course`.`views`, `Course`.`sort`, `Course`.`type`, `Course`.`recommend`, `Course`.`is_free`, `Course`.`price`, `Course`.`old_price`, `Course`.`price_time`, `Course`.`is_vip`, `Course`.`keywords`, `Course`.`popup_ad_time`, `Course`.`count_type`, `Course`.`collection_num`, `Course`.`created_at`, `Course`.`updated_at`, `Course`.`deleted_at`, `Course`.`teacher_id`, `Course`.`topic_id`, (SELECT COUNT(*) FROM wx_pay WHERE wx_pay.goods_id = course.id) AS `orderCount`, (SELECT COUNT(*) FROM video_list WHERE video_list.vid = course.id) AS `lessonCount`, `category`.`id` AS `category.id`, `category`.`name` AS `category.name`, `teacher`.`id` AS `teacher.id`, `teacher`.`title` AS `teacher.title`, `teacher`.`avatar` AS `teacher.avatar`, `teacher`.`description` AS `teacher.description` FROM `course` AS `Course` LEFT OUTER JOIN `category` AS `category` ON `Course`.`cate_id` = `category`.`id` AND (`category`.`deleted_at` IS NULL) LEFT OUTER JOIN `teacher` AS `teacher` ON `Course`.`teacher_id` = `teacher`.`id` AND (`teacher`.`deleted_at` IS NULL) WHERE (`Course`.`deleted_at` IS NULL AND (`Course`.`deleted_at` IS NULL AND `Course`.`status` = 1 AND `Course`.`teacher_id` = 20)) ORDER BY `Course`.`id` DESC LIMIT 0, 2;',


sequelize version: 6.21.2
mysql2 version: 2.3.3
nodejs version: v16.15.1
npm version: 8.11.0
Mysql version: mysql-8.0.29-linux-glibc2.12-x86_64

参考地址为:sequelize子查询

各位大佬帮我看下,愁了好几天,一直没解决

阅读 1.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题