无法重新启动MySQL声明

时间:2017-03-21 15:51:38

标签: mysql sql date

我有一个包含Client_ID的主表和客户端的其他详细信息。第二个表是一个每日记录表,链接到Client_ID上的主表,并具有用于记录当前日期的附加列。因此,第二个表中的Client_ID具有基于每个日期的重复记录。

我正在尝试使用主表中的Client_ID选择此类记录,而当前日期的记录不存在。

我尝试的SQL语句如下: -

SELECT  `Client_ID`, `Client_RFID_Number` 
FROM ciom_master AS a
WHERE  (`Client_Active` ='Y' OR `Client_Active` ='y')
 AND   CURDATE() NOT EXISTS (
                             SELECT (`Client_Check_Out`)
                             FROM `cio_master` AS b
                             WHERE a.Client_ID = b.Client_ID )
 AND   CURDATE() NOT EXISTS (
                             SELECT (`Client_Check_In`)
                             FROM `cio_master` AS c
                             WHERE a.Client_ID = c.Client_ID )

我无法解决此声明错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要在CURDATE()个查询中移动NOT EXISTS

SELECT  `Client_ID`, `Client_RFID_Number` 
FROM ciom_master AS a
WHERE  (`Client_Active` ='Y' OR `Client_Active` ='y')
    AND NOT EXISTS (
                    SELECT (`Client_Check_Out`)
                    FROM `cio_master` AS b
                    WHERE a.Client_ID = b.Client_ID 
                        and Client_Check_Out = CURDATE() )
 AND NOT EXISTS (
                 SELECT (`Client_Check_In`)
                 FROM `cio_master` AS c
                 WHERE a.Client_ID = c.Client_ID 
                     and Client_Check_In = CURDATE())