I Code unten in Node.js mit sequelize.js ModulSequelize.js kann nicht erzeugen Zustand in WHERE-Klausel für die dazugehörige Tabellenfeld
// 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});
haben, aber es andere Abfrage produzieren als
erreichen wollenSELECT `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%');
Wenn ich ändern benutzerdefinierte Bedingung 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 + '%'}};
Dann löst node.js Fehler Unhandled rejection SequelizeDatabaseError: ER_BAD_FIELD_ERROR: Unknown column 'users.company.name' in 'where clause'
Was ich erreichen möchte?
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%');
Jede eine Ahnung darüber haben? Bitte hilf mir.
Vielen Dank im Voraus
Dank für Ihre große Lösung ... Abfrage Spalten zu tun !!! –