MySQL子查询多个结果

时间:2014-09-01 10:20:08

标签: mysql subquery

是否可以使下面的代码工作。目前它只展示来自“纽约”的员工,而不是来自“芝加哥”的员工。?

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;

提前致谢!

//勒

1 个答案:

答案 0 :(得分:1)

使用IN条件,如下所示:

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

另一种方法(可能更好)是使用JOIN条件本身而不是子查询,如下所示:

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