Microsoft Access SQL子查询

时间:2014-11-10 20:01:38

标签: sql ms-access

我想使用子查询列出模块代码,房间代码,日期和时间,所有讲座都涉及我的数据库中名为“Josephine Griffith”的讲师,但我无法让它工作。

我正在尝试的SQL查询是

SELECT moduleCode, roomCode, dayReq, timeReq
FROM roomBooking
WHERE moduleCode
(SELECT mCode
FROM modLect
WHERE lecturer = "Josephine Griffith");

当我执行此操作时,我得到了

  

此子查询最多可以返回一条记录。

2 个答案:

答案 0 :(得分:1)

您错过了IN关键字

SELECT moduleCode, roomCode, dayReq, timeReq
FROM roomBooking
WHERE moduleCode IN
(
  SELECT mCode
  FROM modLect
  WHERE lecturer = 'Josephine Griffith'
);

答案 1 :(得分:0)

您发布的SQL不正确,您错过了运营商。

可能你正在使用=但是如果子查询返回超过1行,你应该使用IN

SELECT moduleCode, roomCode, dayReq, timeReq
FROM roomBooking
WHERE moduleCode IN (SELECT mCode
                     FROM modLect
                     WHERE lecturer = 'Josephine Griffits')

但是,我认为你也可以使用连接而不是子查询

SELECT modulecode, roomcode, dayReq, timeReq
FROM roomBooking, modLect 
WHERE roomBooking.moduleCode = modLect.mCode
  AND lecturer = 'Josephine Griffits'