I want to add multiple conditions where clause
using diesel filter
for my joined table, below is the code that I tried that is not working for me. I want to check some conditions before adding multiple filter queries.
fn find_accounts_details(
&self,
employee_id: &str,
start_date: Option<DateTime<Utc>>,
end_date: Option<DateTime<Utc>>)anyhow::Result<Vec<model::Accounts>>{
let filter_ = employee::dsl::employee_id.eq(employee_id);
if start_date.is_some() && end_date.is_some() {
filter_.and(account::created_at.between(start_date, end_date));
};
let employee_account = employee::table
.inner_join(account::table.on(employee::dsl::employee_id.eq(account::dsl::employee_id)),)
.filter(filter_) --> Not working here
.load::<(Employee_Details,)>(&self.pool.get()?)?;
}
#Emplyee table
| employee-id | employee_name | empolyee_email|
| ----------- | --------------|------------- |
| 1 | ABC |abc@mail.com |
| 2 | xyz |xyz@mail.com |
# Account table
| account | employee-id | account-balnce | created_at|
| -------- | ---------- |--------------- |-----------|
| 1 | 1 | 2000 | 22/10/2021|
| 2 | 2 | 5000 | 01/09/2021|