Reputation: 91
Is it possible to make the code below work. At the moment it only show employees from "New York" but not employees from "Chicago".?
SELECT employees.ename, zipcodes.city
FROM employees
LEFT JOIN zipcodes
ON employees.zip=zipcodes.zip
WHERE employees.zip =
(
SELECT zipcodes.zip
FROM zipcodes
WHERE zipcodes.city = 'New York' OR 'Chicago'
)
ORDER BY employees.eno;
Thanks in advance!
//René
Upvotes: 0
Views: 45
Reputation: 16524
Use the IN
condition, like this:
SELECT employees.ename, zipcodes.city
FROM employees
LEFT JOIN zipcodes
ON employees.zip=zipcodes.zip
WHERE employees.zip IN
(
SELECT zipcodes.zip
FROM zipcodes
WHERE zipcodes.city IN ('New York', 'Chicago')
)
ORDER BY employees.eno
Another approach (possibly better one) is to use the JOIN
condition itself instead of a sub query, like this:
SELECT employees.ename, zipcodes.city
FROM employees
LEFT JOIN zipcodes
ON employees.zip=zipcodes.zip
AND zipcodes.city IN ('New York', 'Chicago')
ORDER BY employees.eno
Upvotes: 1