选择重复约会的复发规则

时间:2014-06-20 10:08:32

标签: sql

我有3种复发类型的约会:1 =主要约会,2 =常规约会,3 =例外。每个定期约会都有一个外键值,该值引用了重复规则表的主键。可能是主人已被删除,而且可能只留下具有特定规则的经常性约会序列中的一个约会。

我想从约会关系/表中选择所有不同的行,其中规则表的主键的外键不为空(我需要选择找到的行的所有列)。此外,我需要一个可在大多数关系数据库中执行的查询(PostgreSQL,MySQL,MS-SQL,Derby ......)。

我基本上想要为引用此规则的每个重复规则选择一个约会,第一个具有“最低”开始日期。

可能它就像SELECT DISTINCT RECRULE,* FROM APPOINTMENTS一样简单,但我不确定这是否是有效的SQL。

亲切的问候 约翰内斯

1 个答案:

答案 0 :(得分:0)

听起来您正在寻找正在使用的参考表中的规则。如果是这样的话:

select r.*
from recurrent r
where exists (select 1
              from appointments a
              where a.recurrentid = r.recurrentid
             );

这是标准SQL,应该适用于所有数据库。