Eggjs Sequelize 多表关联查询

本文主要介绍了新手如何在Node.js服务端框架Egg.js中使用Sequelize进行多表关联查询。作者详细记录了通过外键关联查询多个表的过程,包括三种不同的查询方式,并强调了在设置`as`别名和添加`where`条件时的注意事项。
摘要由CSDN通过智能技术生成

写服务端的新手,我们项目用nodejs写服务端,框架是egg.js。对于简单的 增、删、改、查 新手的我也是快速上手了,但是当我遇到需要关联其他表查询时,我就懵逼了,不知道怎么关联啊。几经周折,总算搞明白了,特此记录一下~~~

实现:通过 fdc_vd_user_his 表关联外键,查询 fdc_vd_user_page 表及 fdc_pro_user_project 表

数据模型:

fdc_vd_user_page

fdc_pro_user_project

fdc_vd_user_his

'use strict';

// 个人操作历史表
module.exports = app => {
  const { STRING, INTEGER, DATE, TEXT } = app.Sequelize;
  const FdcVdUserHis = app.model.define('fdc_vd_user_his', {
    id: {
      type: INTEGER(11),
      primaryKey: true,
      autoIncrement: true,
    },
    page_name: STRING(20), // 页面名称
    page_id: INTEGER(11), // 页面id
    pro_id: INTEGER(11), //
eggjs 中使用 this.app.mysql.select 进行模糊查询的方法可以按照以下步骤进行: 1. 首先,在 Egg.js 项目的 config/config.default.js 文件中配置数据库连接信息。例如,配置一个名为 `mysql` 的数据库连接: ```javascript config.mysql = { // 这里是数据库的连接配置 client: { host: 'localhost', port: '3306', user: 'your_username', password: 'your_password', database: 'your_database', }, // 是否加载到 app 上,默认开启 app: true, // 是否加载到 agent 上,默认关闭 agent: false, }; ``` 2. 在需要进行模糊查询的方法或路由中,可以通过 this.app.mysql.select 方法来执行查询操作。 ```javascript async fuzzyQuery() { const keyword = this.ctx.query.keyword; // 获取查询关键字,假设在请求的 query 参数中传入 keyword const sql = "SELECT * FROM table_name WHERE name LIKE ?"; const rows = await this.app.mysql.query(sql, [`%${keyword}%`]); // 使用 this.app.mysql.query 方法执行查询 // 对查询结果进行处理 // ... // 返回查询结果 this.ctx.body = rows; } ``` 以上代码示例中,通过使用 `LIKE` 关键字进行模糊查询,并将 `%` 字符串连接到关键字的前后,以实现模糊匹配的效果。查询结果可以根据实际需求进行处理,并通过 `this.ctx.body` 返回给前端。 总结:使用 Egg.js 中的 this.app.mysql.select 方法进行模糊查询,需要先配置数据库连接信息,在需要查询的方法中使用 this.app.mysql.query 方法执行查询操作,并结合 `LIKE` 关键字和 `%` 字符串进行模糊匹配。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值