获取没有关系的结果

时间:2016-02-29 14:57:42

标签: mysql

我有一个名为pools的表,其中包含id,name和一个名为alerts的表,其中包含id,poolid,create_date。我想创建一个SQL查询,这将为我带来所有没有alerts表上记录的日期等于今天的池?

3 个答案:

答案 0 :(得分:0)

可以通过多种方式完成,其中一种方式不是EXISTS():

SELECT * FROM pools p
WHERE NOT EXISTS(select 1 from alerts t
                 where t.poolid = p.id
                       and t.create_date < NOW())

另一种方式不是:

SELECT * FROM pools p
WHERE id NOT IN(select poolid from alerts t
                where t.create_date < NOW())

如果你想通过加入来做到这一点:

SELECT p.*,t.id FROM pools p
LEFT OUTER JOIN alerts t
 ON(p.id = t.poolid and t.create_date < NOW())
WHERE t.id is null

答案 1 :(得分:0)

我猜您正在寻找像这样的查询

ember g http-mock users

答案 2 :(得分:-1)

您可以使用左外连接从没有警报的池中获取记录:

select * from pools
left outer join alerts on pools.id = alerts.poolid
where alerts.id is null or alerts.created_date < now()