1
ための句は、私がsequelize.jsモジュールSequelize.jsは、関連するテーブルのフィールド
// association Users belongs to Companies
Users.belongsTo(Companies, {
foreignKey: 'company_id',
});
// default conditions
var conditions = {deleted: '0'};
var companyConditions = {deleted: '0'};
// custom conditions parameters
conditions['$or'] = {first_name: {'$like': '%' + req.query.search + '%'}, last_name: {'$like': '%' + req.query.search + '%'}, email: {'$like': '%' + req.query.search + '%'}};
companyConditions['$or'] = {name: {'$like': req.query.search + '%'}};
// generrate select query
Users.findAll({include: [{model: Companies, where: companyConditions}], where: conditions});
でのNode.jsのコードの下に持っている。しかし、それは
を達成したいとは異なるクエリを生成WHEREで条件を生成することはできませんSELECT `users`.*, `company`.* FROM `users` AS `users`
INNER JOIN `companies` AS `company` ON `users`.`company_id` = `company`.`id` AND `company`.`deleted` = '0' AND (`company`.`name` LIKE 'town%')
WHERE `users`.`deleted` = '0' AND (`users`.`first_name` LIKE '%town%' OR `users`.`last_name` LIKE '%town%' OR `users`.`email` LIKE '%town%');
私はカスタム条件を変更した場合its not working
// custom conditions parameters
conditions['$or'] = {'company.name': {'$like': req.query.search + '%'},first_name: {'$like': '%' + req.query.search + '%'}, last_name: {'$like': '%' + req.query.search + '%'}, email: {'$like': '%' + req.query.search + '%'}};
// companyConditions['$or'] = {name: {'$like': req.query.search + '%'}};
node.jsがエラーをスローするUnhandled rejection SequelizeDatabaseError: ER_BAD_FIELD_ERROR: Unknown column 'users.company.name' in 'where clause'
達成したいことはありますか?
SELECT users.*, company.* FROM users AS users
INNER JOIN companies AS company
ON users.company_id = company.id AND company.deleted = '0'
WHERE users.deleted = '0' AND (users.first_name LIKE '%town%' OR users.last_name LIKE '%town%' OR users.email LIKE '%town%' OR company.name LIKE 'town%');
いずれか1つのことをお考えですか?私を助けてください。アドバンス
感謝を含んで列にクエリを行うことができます
$
シンボル、メインの列名をラップする必要があります! –