使用SQL子查询无法得到我想要的东西

时间:2014-01-13 09:38:39

标签: sql database oracle

有2个表格包含以下列:
表1

++++++++++++++++  
user_id NUMBER  
status_change_date DATE  

TABLE2

++++++++++++++++  
user_id NUMBER  
count NUMBER  
status VARCHAR(10)  
enter_date DATE  

我想要的是找到table1中的行,其中用户的status_change_date不等于“用户的最后一次enter_date状态'已关闭'”。

我写了以下SQL

SELECT * FROM table1 a WHERE status_change_date <>  
(SELECT max(enter_date) FROM table2 b 
WHERE a.user_id = b.user_id AND b.status='closed'); 

但是,结果是列表user_id,status_change_date等于状态为“已关闭”的最后一个enter_date。

1 个答案:

答案 0 :(得分:2)

试试这个

SELECT * FROM table1 T JOIN Table2 S ON
T.status_change_date <> max(S.enter_date) AND
T.user_id = S.user_id
WHERE S.status= 'closed'