请教大神, sequelize 非等值连接怎么实现?
发布于 4 年前 作者 akaili 2507 次预览 最后一次回复是 4 年前 来自 问答
sequelize 非等值连接怎么实现?
我现在有下面两个模型,要实现 SELECT e.salary, g.grade_level FROM employees e JOIN job_grades g ON e.salary BETWEEN g.lowest_sal AND g.lowest_sal; , 应该怎么做?
class employees extends Model {}
employees.init(
{
employee_id: {
type: DataTypes.INTEGER(6),
allowNull: false,
autoIncrement: true,
primaryKey: true
},
first_name: {
type: DataTypes.STRING(20)
},
last_name: {
type: DataTypes.STRING(25)
},
email: {
type: DataTypes.STRING(25)
},
phone_number: {
type: DataTypes.STRING(20)
},
salary: {
type: DataTypes.DOUBLE(10, 2)
},
commission_pct: {
type: DataTypes.DOUBLE(4, 2)
},
manager_id: {
type: DataTypes.INTEGER(6)
},
hiredate: {
type: DataTypes.DATE
}
},
{
sequelize: db,
modelName: "employees"
}
)
class job_grades extends Model {}
job_grades.init(
{
grade_level: {
type: DataTypes.STRING(3),
unique: true
},
lowest_sal: {
type: DataTypes.INTEGER(11)
},
highest_sal: {
type: DataTypes.INTEGER(11)
}
},
{
sequelize: db,
modelName: "job_grade"
}
)
job_grades.removeAttribute("id")
4 回复
https://sequelize.org/master/variable/index.html#static-variable-Op
@chenkai0520 你好,这些操作符我知道怎么用 ,现在问题是 是做关联查询。但是两个表之间没有外键关联,我使用文档里边 里边的关联模型,也无法完成这个查询
@akaili 参考文档 你需要让 sequelize 知道这两个表之间用哪个 field 做关联,关联不一定要创建外键(设置 constraint: false)
你直接写个sql语句啊