如果条件未通过SQL Server,则不返回任何内容

时间:2017-11-21 14:35:30

标签: sql sql-server join

我有两张桌子

guid   | id   |   Name
-------+------+----------
1      | 123  |  John
2      |  456 |  Mac
3      |  789 |  Paul

另一张表是

id.   |  modified date    
------+----------------
1     |   26-08-2017
1     |   27-08-2017
1     |   01-09-2017
1     |   02-09-2017
2     |   26-08-2017
2     |   01-09-2017
2     |   02-09-2017
3     |   01-09-2017
3     |   02-09-2017
3     |   03-09-2017

每次第一个表中的名称更改每个ID时,它也会修改第二个表中的日期。喜欢id 1的名字改了4次。

我希望通过加入01-09-2017之后首次修改的表来获取所有这些ID。如果id在9月1日之前甚至有一个值,那么该值就不应该出现。

根据我们的表格,只有id 3通过条件,因为id 1和2在9月1日之前被修改(id 1有2个值,id 2在9月1日之前有2个值,因此两个都失败了)。

任何帮助?

1 个答案:

答案 0 :(得分:0)

SELECT 
     t1.*, t2.*
FROM 
     table1 t1
JOIN table2 t2 ON 
     t1.guid = t2.id
GROUP BY 
     t1.guid
HAVING MIN(t2.modifieddate ) > '01-09-2017'