我有两个称为“活动和索赔”的表。活动表包含活动ID和所有其他活动详细信息。索赔表包含该活动的所有索赔相关信息。一个活动具有多个声明,并且活动ID是声明表的外键。

在索赔表中,我为每个索赔保持不同的状态(已批准,已删除,已拒绝,已提交)。

当前,如果索赔表中存在的任何索赔中的任何一项以及未处于已批准,拒绝,提交中的任何索赔状态,我都面临着从活动表中获取数据的问题。

例如,如果一个活动有两个不同的声明,而一个声明为已批准状态,而另一个声明为已删除状态。因此,在我的sql查询中,应该返回空值(因为一个声明已被批准进行活动)。在另一个示例中,如果活动只有一个声明,并且状态被删除。这导致我的查询应该获取“活动详细信息”(因为该活动只有一个声明,并且处于已删除状态)。

我当前正在使用的查询如下

SELECT *
FROM myactivities_4
LEFT JOIN claims2 ON claims2.activityid = myactivities_4.activityid
AND claim_status NOT IN ('Submitted', 'Approved','Rejected')


谁能帮我解决这个问题

最佳答案

您似乎想要有关活动和声明的信息,其中所有声明都不处于上述三种状态:

SELECT a.*, c.*
FROM myactivities_4 a JOIN
     claims2 c
     ON c.activityid = a.activityid
WHERE NOT EXISTS (SELECT 1
                  FROM claims2 c2
                  WHERE c2.activityid = a.activityid AND
                        C2.claim_status IN ('Submitted', 'Approved','Rejected')
                  );

关于php - 从连接表中获取满足条件的任何数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49614490/

10-10 09:09