从两个表进行子查询

时间:2013-05-22 00:31:47

标签: sql ms-access

SELECT staffNO, name, surname, position
FROM Staff s, Branch b
WHERE s.branchNo = b.branchNo AND city = 'London';

我试图将上面的SQL代码变成子查询,但我没有得到任何结果。我是SQL的初学者,我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

带有子查询和IN子句的等效查询如下所示:

SELECT staffNO, name, surname, position
FROM Staff s
WHERE s.branchNo IN (
    SELECT b.branchNo
    FROM Branch b
    WHERE b.city = 'London'
);

这当然假设staffNO, name, surname, position表中的Staff都可用作字段。如果其中任何字段来自Branch,那么您确实需要使用JOIN语法。