我希望获得在特定日期参加的所有学生的姓名。我正在尝试以下查询
select Names
from data_table
where ID = (select S_ID
from attendance_table
where status = 'y' and day_date = '2016-03-05');
但我收到错误
子查询返回超过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');