使用INNER JOIN语法将子查询转换为标准查询

时间:2016-05-04 19:10:00

标签: sql database ms-access nested-query

我正在使用Access数据库,需要帮助将以下嵌套查询转换为内部联接查询。

DIRNUM是DIRECTOR表中的主键,它也在MOVIE表中。 MVNUM是MOVIE表和MOVSTAR表中的主键。

SELECT dirname 
FROM director
WHERE dirnum IN (SELECT dirnum 
                 FROM movie 
                 WHERE mvnum IN  (SELECT mvnum 
                                  FROM movstar 
                                  WHERE starnum=2)
                );

2 个答案:

答案 0 :(得分:2)

你想选择不同的(因为你不是" WHERE IN"语法,你会得到重复)

SELECT DISTINCT dirname 
FROM 
    (director d
INNER JOIN 
    movie m ON m.dirnum = d.dirnum)
INNER JOIN
    movstar ms ON ms.mvnum = m.mvnum
WHERE
    ms.starnum=2

答案 1 :(得分:1)

SELECT
    dirname 
FROM 
    (director d
INNER JOIN 
    movie m ON m.dirnum = d.dirnum)
INNER JOIN
    movstar ms ON ms.mvnum = m.mvnum
WHERE
    ms.starnum=2

编辑:改为添加括号,如HansUp指出