Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActiveRecord query using multiple conditions

I have a employee data base that captures all employees for all companies the companies are referenced by a company_id

I want to do something like this

sql = "SELECT race, `foreign`, id_number, company_id, COUNT(*) FROM `employees` WHERE company_id = 52 AND race = `African` AND `foreign` = 1 GROUP BY id_number;"
temp_arr = []
ActiveRecord::Base.connection.execute(sql).each {|int| temp_arr << int }

Like this

employee_ids = Employees.where(company_id: company_id and race: 'African' and foreign: 1).pluck(:id_number)

I keep getting the following error

ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'African' in 'where clause':

And have been reading the Ruby on Rails Guides and cant seem to find what i am looking for. sorry i have never done such a query before its probably formatted wrong or something

like image 529
TheLegend Avatar asked Feb 17 '23 04:02

TheLegend


1 Answers

You have to replace 'and' with ',' Try as follow;

employee_ids = Employees.where(company_id: company_id, race: 'African',  foreign: 1).pluck(:id_number)
like image 170
Muhamamd Awais Avatar answered Mar 04 '23 06:03

Muhamamd Awais