我正在使用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)
);
答案 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指出