Rich Shepard <rshepard@appl-ecosys.com> writes: > The script: > select p.person_nbr, p.fname, p.lname, p.job_title, p.direct_phone, p.email, > c.company_nbr, c.company_name, c.industry > from people as p > inner join companies as c on p.company_nbr = c.company_nbr > where p.email is not null and > industry = 'Chemicals' or > industry = 'Energy' or > industry = 'Food processor' or > industry = 'Manufacturing' or > industry = 'Maritime' or > industry = 'Transportation' or > industry = 'Wood products' > group by p.person_nbr, c.company_nbr > order by p.person_nbr;
> The where condition, `p.email is not null' is not working; the results > include rows where email is null while all other columns are okay.
> I had that condition following the industry conditions but that makes no > difference.
> What have I missed?
AND binds more tightly than OR. I think you meant
where p.email is not null and (industry = 'Chemicals' or industry = 'Energy' or industry = 'Food processor' or industry = 'Manufacturing' or industry = 'Maritime' or industry = 'Transportation' or industry = 'Wood products')
BTW, using IN might make this more compact.
While missing parentheses would not break the logic.