通过过滤器对三个表使用 SQL 连接

问题描述 投票:0回答:1

我有 3 个表要查询,其中一个表链接另外两个表。这些表是 CITY、SITE 和 ACTIVITIES。它们包含城市内的站点,然后每个站点的活动分开。并非每个网站都有多项活动。在 CITY 表中,有 STATE_CODE,我希望能够对其进行过滤。

CITY 通过 CITY_ID 链接到 SITE

ACTIVITIES 通过 SITE_ID 链接到 SITE

ACTIVITIES 根本不直接链接到 CITY

我正在尝试获取一个返回特定状态下的所有站点和活动的查询。例如,如果我正在搜索南达科他州,我希望它返回

     **ACTIVITY - SITE**
           NULL - Mt. Rushmore
           NULL - Black Elk
Needles Highway - Custer State Park
    Sylvan Lake - Custer State Park

以下代码正确返回了 ACTIVITIES 和 SITE,但我无法弄清楚如何通过 STATE_CODE 对其进行过滤。此查询仅返回数据库中的所有活动和站点。

SELECT ACTIVITY_NAME, SITE_NAME
    FROM SITE
        LEFT JOIN ACTIVITIES A
            ON SITE.SITE_ID = A.SITE_ID;

当我弄清楚如何链接 CITY 时,我还想返回 SELECT CITY_NAME 和 STATE_CODE。

sql mysql
1个回答
0
投票
SELECT A.ACTIVITY_NAME, S.SITE_NAME
FROM SITE S
LEFT JOIN ACTIVITIES A ON S.SITE_ID = A.SITE_ID
LEFT JOIN CITY C ON S.CITY_ID=C.CITY_ID

可能是这样的吗?

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.