选择日期

时间:2017-11-11 12:07:18

标签: php mysql

我的数据库admission

中有一个表格
     id      pa_name   health_no     date_adm       
---------- ---------- ---------- ---------- ----------
      1      John        1500         20/01/2010          
      2      Jorge       1800         28/01/2011          
      3      Sara        1000         09/04/2012          
      4      John        1500         11/01/2013          
      5      John        1500         15/01/2015          
      6      Sara        1000         18/01/2016          

我尝试过此查询,但结果错误。

SELECT * FROM admission
WHERE admission.date_adm IN (
    SELECT DISTINCT date_adm FROM admission
    WHERE date_adm NOT BETWEEN
        timestamp(DATE_SUB(NOW(), INTERVAL 5 year))
        AND
        timestamp(NOW())
)

我的问题是,如果患者在过去5年内被录取,我需要一个查询来为过去5年未被录取的患者选择health_no records,不包括任何health_no

结果应该是这样的:

pa_name     health_no
--------   ----------
Sara        1000  
----------------------

提前致谢!

1 个答案:

答案 0 :(得分:0)

假设您的date_adm是日期数据类型,您可以检查healt_no,而不是过去5年中的那些

SELECT * 
from admission WHERE admission.health_no  NOT IN (
  SELECT DISTINCT  health_no      
  from admission 
  WHERE date_adm BETWEEN DATE_SUB(NOW(), INTERVAL 5 year) AND NOW()
)