获取在特定日期参加的学生的姓名

时间:2016-03-05 13:12:49

标签: mysql sql plsql

我希望获得在特定日期参加的所有学生的姓名。我正在尝试以下查询

select Names 
from data_table 
where ID = (select S_ID 
            from attendance_table 
            where status = 'y' and day_date = '2016-03-05');

但我收到错误

  

子查询返回超过1行

我可以通过加入表来实现,但我只想以这种方式编写。

谢谢

1 个答案:

答案 0 :(得分:3)

有两种方法可以在不使用JOIN's

的情况下实现此目的

使用IN opertaor

SELECT Names
FROM   data_table
WHERE  ID IN (SELECT S_ID
              FROM   attendance_table
              WHERE  status = 'y'
                     AND day_date = '2016-03-05');

使用EXISTS(首选方法)

SELECT Names
FROM   data_table d
WHERE  EXISTS (SELECT 1
               FROM   attendance_table a
               WHERE  d.ID = a.S_ID
                      AND status = 'y'
                      AND day_date = '2016-03-05');