SQL-尝试关联数据

时间:2018-06-27 02:11:05

标签: mysql sql

我正在学习SQL。我拥有的数据集如下所示:

city_name |  work_place_name | min_commute_time | max_commute_time
-------------------------------------------------------------------
Austin        CONGRESS           25                 45
Austin        NASA               10                 12
Austin        CIRCUS             16                 35
CEDAR PARK    CONGRESS           35                 65
CEDAR PARK    NASA               28                 60
CEDAR PARK    CIRCUS             26                 55
KYLE          CONGRESS           50                 85
KYLE          NASA               60                 100
KYLE          CIRCUS             60                 100

我正在尝试找出哪个城市的CONGRESS和NASA的最小通勤时间小于或等于30。我提出了以下查询,但是没有得到想要的结果。

SELECT city_name
FROM commute_times
WHERE min_commute_time<=30 AND (work_place_name='NASA' OR work_place_name='CONGRESS')

我得到的结果是:

city_name 
-----------
Austin
Austin
Cedar Park

我希望得到的结果是:

City_name
-----------
Austin

1 个答案:

答案 0 :(得分:0)

您很近。聚合将填充缺失的部分:

SELECT city_name
FROM commute_times
WHERE min_commute_time <= 30 AND 
      work_place_name IN ('NASA', 'CONGRESS')
GROUP BY city_name
HAVING COUNT(*) = 2;