Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对复杂联接查询进行续集以使用findAll_Javascript_Mysql_Sequelize.js - Fatal编程技术网

Javascript 对复杂联接查询进行续集以使用findAll

Javascript 对复杂联接查询进行续集以使用findAll,javascript,mysql,sequelize.js,Javascript,Mysql,Sequelize.js,因此,我想建立这5个表的关系,并进行findAll,从每个表中获取一些信息。对不起,这张桌子太难看了 产品表 | Field | Type | Null | Key | Default | Extra | | id | int(11) unsigned | NO | PRI | NULL | auto_increment | | typeId | int(11) unsigned | NO | MUL | NULL

因此,我想建立这5个表的关系,并进行findAll,从每个表中获取一些信息。对不起,这张桌子太难看了

产品表

| Field  | Type             | Null | Key | Default | Extra          |  
| id     | int(11) unsigned | NO   | PRI | NULL    | auto_increment |  
| typeId | int(11) unsigned | NO   | MUL | NULL    |                |  
| image  | varchar(255)     | YES  |     | NULL    |                |  
| desc   | text             | YES  |     | NULL    |                |  
| price  | float            | YES  |     | NULL    |                |  
| stock  | int(11)          | YES  |     | NULL    |                |  
类型表

| Field | Type         | Null | Key | Default | Extra          |   
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |  
| name  | varchar(255) | NO   |     | NULL    |                |
| Field     | Type             | Null | Key | Default | Extra |  
| productId | int(11) unsigned | NO   | PRI | NULL    |       |  
| name      | text             | YES  |     | NULL    |       |
| Field | Type             | Null | Key | Default | Extra          |   
| id  | int(11) unsigned | NO   | PRI | NULL    | auto_increment |   
| name  | varchar(255)     | NO   |     | NULL    |                |
规格表

| Field | Type         | Null | Key | Default | Extra          |   
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |  
| name  | varchar(255) | NO   |     | NULL    |                |
| Field     | Type             | Null | Key | Default | Extra |  
| productId | int(11) unsigned | NO   | PRI | NULL    |       |  
| name      | text             | YES  |     | NULL    |       |
| Field | Type             | Null | Key | Default | Extra          |   
| id  | int(11) unsigned | NO   | PRI | NULL    | auto_increment |   
| name  | varchar(255)     | NO   |     | NULL    |                |
JCTProductColor表

| Field     | Type             | Null | Key | Default | Extra |   
| productId | int(11) unsigned | NO   | PRI | NULL    |       |  
| colorId   | int(11) unsigned | NO   | PRI | NULL    |       |
颜色表

| Field | Type         | Null | Key | Default | Extra          |   
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |  
| name  | varchar(255) | NO   |     | NULL    |                |
| Field     | Type             | Null | Key | Default | Extra |  
| productId | int(11) unsigned | NO   | PRI | NULL    |       |  
| name      | text             | YES  |     | NULL    |       |
| Field | Type             | Null | Key | Default | Extra          |   
| id  | int(11) unsigned | NO   | PRI | NULL    | auto_increment |   
| name  | varchar(255)     | NO   |     | NULL    |                |
这就是我现在的关系

Product.belongsTo(规格、{
“外键”:“id”,
“通过”:{
型号:“产品规格”,
唯一:错误
},
“约束”:false
});
规格belongsTo(产品、{
“foreignKey”:“productId”,
“通过”:{
型号:“产品规格”,
唯一:错误
},
“约束”:false
});
类型。属于气孔(产品、{
“约束”:假,
“外键”:“id”,
“通过”:{
型号:“ProductType”,
唯一:错误
}
});
产品名称:belongsTo(类型:{
“约束”:假,
“外键”:“类型ID”,
“通过”:{
型号:jctProductColor,
唯一:错误
}
});
产品名称(颜色、{
“约束”:假,
“foreignKey”:“productId”,
“通过”:{
型号:jctProductColor,
唯一:错误
}
});
颜色。属于气孔(产品、{
“约束”:假,
“foreignKey”:“colorId”,
“通过”:{
型号:jctProductColor,
唯一:错误
}

});我知道你一年前问过这个问题,但我在搜索同样的问题,发现了你没有回答的问题

你可以这样做:

models.Product.findAll({
  attributes: ['image', 'desc', 'price', 'stock'],
  include: [{
      model: models.Type,
      attributes: [['name', 'Type']]
    }, {
      model: models.Specs,
      attributes: [['name', 'Specs']]
    }, {
      model: models.JctProductColors,
      include: [{
        model: models.Color,
        attributes: [['name', 'Color']]
      }]
    }
  ],
  where: {
    id: id
  }
});
有关更多信息,请查看此处:

我不知道这是什么意思,但这个词是+1sequelize@Frisbeesequelize是一个nodejs ORM库