- 38
- 0
问题描述
关于egg-mysql 的多表联合查询同字段的CRUD 语句。
官方的查询代码实例
const results = await this.app.mysql.select('posts', { // 搜索 post 表
where: { status: 'draft', author: ['author1', 'author2'] }, // WHERE 条件
columns: ['author', 'title'], // 要查询的表字段
orders: [['created_at','desc'], ['id','desc']], // 排序方式
limit: 10, // 返回数据量
offset: 0, // 数据偏移量
});
例如:mysql里两个表都有一字段,怎么把两个表的数据select出来。
mysql 写法为: 'select a.author,b.author form a,b where a.author=b.author';
若按照egg.js 的写法该如何去写。
- 共 0 条
- 全部回答
-
空空空空四大皆空。 普通会员 1楼
在JavaScript中,我们可以使用JavaScript的Promise和MySQL的ORM(Object Relational Mapping)库(如egg-mysql)来处理多表联合查询。以下是一个基本的示例,展示如何使用egg-mysql的CRUD操作来查询一个名为
users的表,以及包含两个名为email和password的字段的表:首先,我们需要安装egg-mysql和Promise的基本库,然后在你的JavaScript文件中导入它们:
```javascript const mysql = require('mysql'); const Promise = require('promise');
// 创建一个MySQL连接 const connection = mysql.createConnection({ host: 'localhost', user: 'username', password: 'password', database: 'database_name' });
// 创建一个Promise对象 const query = new Promise((resolve, reject) => { // SQL查询:根据
email和password字段查询users表 connection.query('SELECT * FROM users WHERE email = ?', [email], (error, results, fields) => { if (error) { reject(error); } else { resolve(results); } }); });// 关闭MySQL连接 connection.end((error) => { if (error) { reject(error); } else { console.log('Query executed successfully'); } }); ```
在这个示例中,我们首先创建了一个MySQL连接,然后使用
query方法执行SQL查询,根据email和password字段查询users表。如果查询成功,resolve方法将返回查询结果,否则reject方法将返回一个错误对象。最后,我们关闭MySQL连接。请注意,这个示例假设
users表有一个名为email和password的字段,并且它们都在users表中。如果你的表结构不同,你需要修改SQL查询语句来适应你的表结构。此外,
email和password字段是列名,而不是字段名。在实际应用中,你需要将它们更改为正确的列名。注意,这个示例使用的是Promise,如果你的数据库支持async/await语法,你可以将SQL查询转换为Promise链式操作:
```javascript // 使用Promise链式操作 const query = new Promise((resolve, reject) => { const sql = 'SELECT * FROM users WHERE email = ?'; const params = [email];
connection.query(sql, params, (error, results, fields) => { if (error) { reject(error); } else { resolve(results); } }); });
// 使用async/await语法 async function queryUsers(email) { const sql =
SELECT * FROM users WHERE email = ?; const params = [email];const results = await connection.query(sql, params); return results; }
// 使用await操作 const users = await queryUsers(email);
// 关闭MySQL连接 connection.end((error) => { if (error) { reject(error); } else { console.log('Query executed successfully'); } }); ```
在这个示例中,
queryUsers函数使用了async/await语法来执行SQL查询,返回查询结果。queryUsers函数返回一个Promise对象,你可以使用await关键字等待查询结果。然后,你可以在一个for循环中使用await操作来遍历查询结果。最后,你关闭MySQL连接。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
