【问题标题】:Get names of students that have attended on particular date获取在特定日期参加过的学生的姓名
【发布时间】:2016-06-19 06:46:52
【问题描述】:

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

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

但我遇到了一个错误

子查询返回多于 1 行

我可以通过加入表格来做到这一点,但我只想这样写。

谢谢

【问题讨论】:

  • IN替换=
  • @MotoGP 它的工作谢谢。
  • JOIN 有什么问题????

标签: mysql sql plsql


【解决方案1】:

有两种方法可以在不使用JOIN's的情况下实现这一点

使用INopertaor

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'); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多