php - 从满足条件的任何一个连接表中获取数据

标签 php mysql sql

我有两个名为“事件”和“ 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/

相关文章:

通过 AJAX 调用的 PHP header() 无法正常工作

SQLSTATE[22P02] : Invalid text representation

sql - Go sql从扫描返回多行

javascript - Jquery 在所有具有相同值的下拉列表中禁用选定值

javascript - 使用 PHP 从动态创建的输入中收集数据

php - 使用 JSON 数组中的 Php 如何根据另一个关联值检索项目的值?

php - Zend Framework正常查询Zend_Db_Table

mysql - 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件

mysql - 根据电子邮件地址映射两个mysql表

PHP MySQL 连接