- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Sequelize 的新手,为了一个简单的查询我已经浪费了几个小时。 Sequelize 的联想让我头晕@@。
所以我想运行这个查询
SELECT a.first_name, a.last_name, b.host_id FROM RoomDetails a
LEFT JOIN Rooms b ON b.host_id = a.chat_id
LEFT JOIN States c ON c.id = b.state_id
WHERE c.bot='$bot_name' AND c.chat_id='$chatid';
我不知道如何以 Sequelize 格式实现这种方式。这是我的模型:
states.js
'use strict';
module.exports = function(sequelize, DataTypes) {
var states = sequelize.define('states', {
botName: DataTypes.STRING,
chatId: DataTypes.INTEGER,
state: DataTypes.STRING,
turnId: DataTypes.INTEGER,
turnName: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
states.hasOne(models.rooms, {
as: 'rooms',
foreignKey: {
name: 'stateId'
},
foreignKeyConstraint: true
});
// associations can be defined here
}
}
});
return states;
};
rooms.js
'use strict';
module.exports = function(sequelize, DataTypes) {
var rooms = sequelize.define('rooms', {
stateId: DataTypes.INTEGER,
hostId: DataTypes.INTEGER,
maxLetter: DataTypes.INTEGER
}, {
classMethods: {
associate: function(models) {
rooms.belongsTo(models.states, {
as: 'states',
foreignKey: {
name: 'stateId'
},
foreignKeyConstraint: true
});
rooms.hasMany(models.roomdetails, {
as: 'roomdetails',
foreignKey: {
name: 'roomId'
},
foreignKeyConstraint: true
});
rooms.belongsToMany(models.roomdetails, {
as: 'roomdetailschatid',
foreignKey: {
name: 'hostId'
},
foreignKeyConstraint: true
});
// associations can be defined here
}
}
});
return rooms;
};
roomdetails.js
'use strict';
module.exports = function(sequelize, DataTypes) {
var roomdetails = sequelize.define('roomdetails', {
roomId: DataTypes.INTEGER,
chatId: DataTypes.INTEGER,
firstName: DataTypes.STRING,
lastName: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
roomdetails.belongsTo(models.rooms, {
as: 'rooms',
foreignKey: {
name: 'roomId'
},
foreignKeyConstraint: true
});
roomdetails.belongsTo(models.rooms, {
as: 'roomshostid',
foreignKey: {
name: 'chatId'
},
foreignKeyConstraint: true
});
// associations can be defined here
}
}
});
return roomdetails;
};
这是我迄今为止一直在尝试的
module.exports.getHostInfo = function(res) {
return models.roomdetails.findOne({
include: {
required: true,
model: models.rooms,
as: 'rooms',
include: {
required: true,
model: models.states,
as: 'states',
where: {
botName: { $eq: general.botName },
chatId: { $eq: res.chat.id },
state: { $ne: general.FINISHED}
}
}
}
})
.then(function (response) {
console.log(response);
return response;
})
.catch(function (error) {
console.log('error getTotalPlayer', error);
});
}
它总是返回错误,例如“字段列表”中未知的列“rooms.roomdetailId”
有人可以帮助我吗?任何帮助将不胜感激,谢谢
最佳答案
正如错误所示,Sequelize 无法找到使用驼峰命名法的列,而数据库中的列是使用 Snake_Case 保存的。尝试使用snake_case定义foreignKeys:
rooms.hasMany(models.roomdetails, {
as: 'roomdetails',
foreignKey: 'room_id',
foreignKeyConstraint: true
});
关于mysql - Sequelize JS - 如何使用组合键进行多个连接查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40628037/
假设我有一个制表符分隔的文件,其中包含格式如下的用户事件数据: timestamp user_id page_id action_id 我想写一个 hadoop 作业来统计每个页面上的用户操作,
为了生成下一个SQL代码: create table users ( user_name varchar(15) not null primary key, user_pass var
是否有必要将 composite-id 映射到类?? 可以这样吗? 或者应该是 如果我们有复合键,那么该类是否应该实现 equals() 和 override() 方法
我刚开始使用 MongoDb,我注意到我得到了很多重复的记录,这些记录是我想要唯一的。我想知道如何为我的数据使用复合键,我正在寻找有关如何创建它们的信息。最后,我使用 Java 来访问 mongo 和
我有以下现有的数据库模式,我想用 Java 和纯 JPA 注释重新创建它(使用 hibernate 作为提供者,所以 hibernate 特定的注释将作为最后的手段): CREATE TABLE us
如果我想创建自定义组合键来运行命令,是否有为此保留的键盘快捷键?我总是发现很难决定要覆盖哪个快捷方式,因为我不确定我不应该覆盖哪些命令以及我将来可能安装的命令插件会尝试设置哪些命令。 最佳答案 我建议
我正在使用 vanilla Javascript 创建一个屏幕键盘,我试图在物理键盘上按下相同的键时更改屏幕键盘键的颜色。到目前为止,一切都很好。问题是,我正在使用 keyup 和 keydown,但
我有一个正在工作台中构建的模型,其中一个表是一个多对多关系表,其复合键由 3 个整数值组成:构成多对多关系的两个外键,以及一个附加标识符,其详细信息与我的问题无关。 我可以看到如何在工作台的模型选项卡
是否有一种Python式的方法可以通过组合键对下面描述的数据帧进行排序 - 首先通过ORD_DT_KEY,然后通过ORD_TM_KEY,然后通过ORD_KEY;并将排名存储在另一列 ORD_RANK
我正在从我们的后端取回数据,其中包含有关键盘快捷键的信息。这是我将收到的简化版本: { code: "r", message: "test R" }, { code: "s", mes
我绞尽脑汁,发现了很多类似情况的例子,但解决方案似乎并不匹配。 我根据不同数据库上的 SQL 查询结果构建了两个数组。 其中一个的格式如下: $data = array([$sku] => array
我了解如何通过一个按键使用此功能,但我如何通过两个按键使用它? 像:GetAsyncKeyStat(VK_LBUTTON && VK_RBUTTON); 最佳答案 您必须调用 GetAsyncKeyS
我的要求需要这样的 map : pair _keypair; map> 我的需求是: key1 和 key2 对必须是唯一的。 我应该能够使用 key1 和 Key2 对进行访问。 插入。 使用组合键
我正在尝试设置我的实体以允许进行 pk。我的数据库包含两个字段, dealer_detail_id pkuser_detail_id pk 两者都在相应表中加入 id。 到目前为止,我已经试过了,但没
这是我的: 表格内容:cat_id product_id data1 data2 etc. 这些类别显然不是唯一的。产品 ID 是唯一的。 2 个查询: 1 -- SELECT * WHERE cat
我的表结构如下: Table1: id: Int name: String version: Int 表格的相应 Slick 表示为: class Table1(tag: Tag) e
我正在学习将 pyhook 作为键盘记录器并编写一些示例。我不知道如何记录像 óíúö 这样的键序列,因为结果是这样的 -> ´´i´´o 有人知道如何解决这个问题吗? 谢谢你。 最佳答案 我的站点上
我正在使用 Putty ssh 连接 Linux 服务器。 组合键 CTRL + , 和 CTRL + . 不起作用... 我的键盘是日文键盘 我用shokey测试,下面是“按下[,][.][ALT+
我真的无法解决这个问题,甚至不知道是否可能。 我想使用 CTRL+C 和 CTRL+V 快捷键。 示例:有 2 个应用程序。 1. App 是用 C# 编写的, 2. App 是一个 Java-App
我正在尝试为我的浏览器应用程序创建一个按键监听器,以便 Command+T 以与大多数实际浏览器相同的方式触发打开新选项卡。 为此查找了一些可能的解决方案,看起来我可能必须使用 KeyCombinat
我是一名优秀的程序员,十分优秀!