Mysql 未知列';模式1->;模型2.字段名';在';关于第'条;

Mysql 未知列';模式1->;模型2.字段名';在';关于第'条;,mysql,sequelize.js,Mysql,Sequelize.js,我在这个错误未知列错误中挣扎 我有3张桌子,下面是 市场——一对多关系(市场有许多产品。) 产品——一对一关系(产品属于市场) 国家——一对多关系(国家有许多产品。) 下面给出了示例JSON: [{ "id": 1, "name": "XYZ Name", "code": "XYZCODE", "Products": [ { "id": 150, "product_name": "ABC",

我在这个错误未知列错误中挣扎

我有3张桌子,下面是

  • 市场——一对多关系(市场有许多产品。)
  • 产品——一对一关系(产品属于市场)
  • 国家——一对多关系(国家有许多产品。)
  • 下面给出了示例JSON:

    [{
        "id": 1,
        "name": "XYZ Name",
        "code": "XYZCODE",
        "Products": [
            {
                "id": 150,
                "product_name": "ABC",
                "product_location": 19,
                "state_id": 24,
                "city": "California",
                "Country": {
                    "id": 19,
                    "name": "USA"
                }
            },
            {
                "id": 154,
                "product_name": "DEF",
                "product_location": 19,
                "state_id": 24,
                "city": "New York",
                "Country": {
                    "id": 19,
                    "name": "USA"
                }
            }
        ]
    }]
    
    如果am在Country表中查询城市和国家名称,则在sequelize中出现以下错误

    {
    "code": "ER_BAD_FIELD_ERROR",
    "errno": 1054,
    "sqlState": "42S22",
    "sqlMessage": "Unknown column 'Products->Country.name' in 'on clause'",
    "sql": "SELECT `MarketplaceType`.`id`, `MarketplaceType`.`name`, `MarketplaceType`.`code`, `Products`.`id` AS `Products.id`, `Products`.`product_name` AS `Products.product_name`, `Products`.`product_location` AS `Products.product_location`, `Products`.`state_id` AS `Products.state_id`, `Products`.`city` AS `Products.city`, `Products->Country`.`id` AS `Products.Country.id`, `Products->Country`.`name` AS `Products.Country.name` FROM `marketplace_type` AS `MarketplaceType` LEFT OUTER JOIN `product` AS `Products` ON `MarketplaceType`.`id` = `Products`.`marketplace_type_id` AND `Products`.`status` = 1 AND `Products`.`marketplace_id` = 1 AND (`Products`.`city` = 'California' OR `Products->Country`.`name` = 'California') LEFT OUTER JOIN `country` AS `Products->Country` ON `Products`.`product_location` = `Products->Country`.`id` WHERE `MarketplaceType`.`status` = 1 AND `MarketplaceType`.`marketplace_id` = 1;"
    }
    
    和MYSQL查询如下:

    SELECT `MarketplaceType`.`id`, `MarketplaceType`.`name`, `MarketplaceType`.`code`, `Products`.`id` AS `Products.id`, `Products`.`product_name` AS `Products.product_name`, `Products`.`product_location` AS `Products.product_location`, `Products`.`state_id` AS `Products.state_id`, `Products`.`city` AS `Products.city`, `Products->Country`.`id` AS `Products.Country.id`, `Products->Country`.`name` AS `Products.Country.name` FROM `marketplace_type` AS `MarketplaceType` LEFT OUTER JOIN `product` AS `Products` ON `MarketplaceType`.`id` = `Products`.`marketplace_type_id` AND `Products`.`status` = 1 AND `Products`.`marketplace_id` = 1 AND (`Products`.`city` = 'California' OR `Products->Country`.`name` = 'California') LEFT OUTER JOIN `country` AS `Products->Country` ON `Products`.`product_location` = `Products->Country`.`id` WHERE `MarketplaceType`.`status` = 1 AND `MarketplaceType`.`marketplace_id` = 1;
    
    使用sequelize进行ORM查询:

    var marketplaceTypeQueryObj = {};
    var productCountQueryParames = {};
    
    marketplaceTypeQueryObj['status'] = status["ACTIVE"];
    marketplaceTypeQueryObj['marketplace_id'] = marketplace['WHOLESALE'];
    
    productCountQueryParames['status'] = status["ACTIVE"];
    productCountQueryParames['marketplace_id'] = marketplace['WHOLESALE'];
    
    if (req.query.origin) {
        productCountQueryParames['$or'] = [{
            city: req.query.origin
        }, {
            '$Products.Country.name$': req.query.origin
        }, {
            '$Products.State.name$': req.query.origin
        }];
    }
    
    console.log('productCountQueryParames', productCountQueryParames);
    
    model['MarketplaceType'].findAll({
        where: marketplaceTypeQueryObj,
        include: [{
            model: model['Product'],
            where: productCountQueryParames,
            include: [{
                model: model['Country'],
                attributes: ['id', 'name']
            }, {
                model: model['State'],
                attributes: ['id', 'name']
            }],
            attributes: ['id', 'product_name', 'product_location', 'state_id', 'city'],
            required: false
        }],
        attributes: ['id', 'name', 'code']
    })
    
    改变

    attributes: ['id', 'product_name', 'product_location', 'state_id', 'city'],
    


    在产品型号属性中添加国家id

    您使用的是ORM查询还是原始查询?@Priyank我使用的是ORM查询。请发布您的ORM查询also@VivekDoshi还更新了ORM
    attributes: ['id', 'product_name', 'product_location', 'state_id', 'city','country_id'],