Skip site navigation (1) Skip section navigation (2)

Re: SQL "OR" Problem

From: Frank Bax <fbax(at)sympatico(dot)ca>
To: pgsql-novice(at)postgresql(dot)org
Subject: Re: SQL "OR" Problem
Date: 2005-08-26 20:18:20
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-novice
At 03:55 PM 8/26/05, operationsengineer1(at)yahoo(dot)com wrote:

>hi all,
>i'm trying to populate a list box with the names of
>employees linked to certain positions (each name
>listed once)...
>SELECT DISTINCT t_emp.emp_id, t_emp.first_name || ' '
>|| t_emp.last_name, t_pos.pos
>FROM t_inspect, t_emp, t_pos
>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 get the following results:
>1. if an employee is an Assembler then s/he is listed
>3 times - once with each position "pos".
>2. if an employee is a Qaulity Inspector then s/he is
>listed 2 times - once with each position "pos"
>exlcuding "Assembler".
>1. if an employee is a Test Technician then s/he will
>likely be listed once with "Test Technician".  i don't
>have a Test Technician in my dev db.
>i'm not sure if the OR keyword is supported or if i
>just made it up.  again, i'm just trying to list each
>name once in each of these three positions (a name can
>only be in one position category).
>i think i'm either abusing "OR", missing something in
>my where clause or, most probably, both.
>any help would be appreciated.

I'll guess the problem is operator precedence.  Try:

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' )

Check out table 4.1 on this page.

In response to

pgsql-novice by date

Next:From: Stephan SzaboDate: 2005-08-26 20:24:50
Subject: Re: SQL "OR" Problem
Previous:From: Philip HallstromDate: 2005-08-26 20:10:02
Subject: Re: SQL "OR" Problem

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group