【发布时间】:2019-08-06 07:02:52
【问题描述】:
我正在使用sails js v 1.x 构建一个rest api 我需要连接两个 mysql 数据库,所以我在 config/datastores.js 文件中定义了它们:
module.exports.datastores = {
default: {
adapter: require('sails-mysql'),
url: 'mysql://root:12345@192.168.0.5:3306/test',
},
mysqldb: {
adapter: require('sails-mysql'),
url: 'mysql://root:12345@192.168.0.5:3306/test2',
},
};
在我的控制器中,我有这个功能需要通过加入数据库测试以及 test2 来获取数据
module.exports = {
index: function (req, res) {
User.getDatastore().sendNativeQuery("SELECT * from test.users u INNER JOIN test2.users t ON u.id=t.id limit 10",function(err, rawResult) {
res.send(rawResult);
})
},
};
但这给了我一个错误:
{
"code": "ER_NO_SUCH_TABLE",
"errno": 1146,
"sqlMessage": "Table 'test.users' doesn't exist",
}
当查询类似于select * from users(它使用默认数据库,即测试)时,我还有一个空白的用户模型和原始 sql 查询的执行工作完美。
如何在sails js中连接多个MySQL数据库来实现这种查询?
【问题讨论】:
-
select * from users 有效,因为
table users存在,但表test.users显然在默认表上不存在。如果我理解,你想加入来自不同数据库的 2 个表吗? -
看我的回答。我能够解决问题
标签: javascript mysql node.js sails.js sails-postgresql