我有两个名为“事件”和“ claim ”的表。事件表包含事件 ID 和所有其他事件详细信息。 claim 表包含事件的所有 claim 相关信息。一项事件有多个声明,事件 ID 是声明表的外键。
在 claim 表中,我为每个 claim 维护不同的状态(已批准、已删除、已拒绝、已提交)。
目前,如果 claim 表中存在任何一项 claim ,并且任何一项 claim 状态未处于“已批准”、“拒绝”、“已提交”状态,则我在从事件表中获取数据时面临一个问题。
例如,如果某项事件有两个不同的声明,其中一个声明处于已批准状态,另一个声明处于已删除状态。因此,在我的 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/