| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | operationsengineer1(at)yahoo(dot)com |
| Cc: | pgsql-novice(at)postgresql(dot)org |
| Subject: | Re: SQL "OR" Problem |
| Date: | 2005-08-26 20:27:47 |
| Message-ID: | 22514.1125088067@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-novice |
<operationsengineer1(at)yahoo(dot)com> writes:
> WHERE t_emp.pos_id = t_pos.pos_id
> AND t_inspect.inspect_emp_id = t_emp.emp_id
> AND t_pos.pos = 'Assembler'
> OR t_pos.pos = 'Quality Inspector'
> OR t_pos.pos = 'Test Technician'
You probably want some parentheses with that:
WHERE t_emp.pos_id = t_pos.pos_id
AND t_inspect.inspect_emp_id = t_emp.emp_id
AND (t_pos.pos = 'Assembler'
OR t_pos.pos = 'Quality Inspector'
OR t_pos.pos = 'Test Technician')
I believe AND binds more tightly than OR by default, so your original
means
WHERE (t_emp.pos_id = t_pos.pos_id
AND t_inspect.inspect_emp_id = t_emp.emp_id
AND t_pos.pos = 'Assembler')
OR t_pos.pos = 'Quality Inspector'
OR t_pos.pos = 'Test Technician'
which is unlikely to be what you want.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Steve Crawford | 2005-08-26 20:29:09 | Re: SQL "OR" Problem |
| Previous Message | Stephan Szabo | 2005-08-26 20:24:50 | Re: SQL "OR" Problem |