简体   繁体   中英

MySQL subqueries multiple result

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é

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM