i trying write mysql query select rows of table 1 one relation column 0 of 1 many relation. basicaly want leads finished not 1.
my failing query
select * `leads` left join `call_lead` on `leads`.`id` = `call_lead`.`lead_id` left join `call_result_codes` on `call_lead`.`call_result_code_id` = `call_result_codes`.`id` , `call_result_codes`.`finished` in (0) group `leads`.`id`
this fails , still returns leads if have code finished 1.
expected output be
lead id 12 , lead id 2.
table leads
_____________________ |id | name | |2 | test name | |8 | test name2 | |12 | test name2 |
table call_lead
_____________________________________________________ |id | lead_id | user_id | call_result_code_id |remark| |22 | 8 | 1 | 0 |test | |23 | 8 | 1 | 1 |test | |24 | 2 | 1 | 0 |test |
table call_result_codes
________________________________ |id | description | finished | |0 | not answering | 0 | |1 | not interested| 1 |
you can use exists()
:
select * `leads` left outer join `call_lead` on `leads`.`id` = `call_lead`.`lead_id` not exists(select 1 `call_result_codes` `call_lead`.`call_result_code_id` = `call_result_codes`.`id` , `call_result_codes`.`finished` = 1)
i assumed expected output want doesn't have record in call_results_codes too, enough don't have record there finished = 1.
Comments
Post a Comment