Mysql SQL查询连接多个表以满足所有条件或不返回任何条件
我有这个场景和查询结果集。我需要使用特定条件过滤结果集 我有:Mysql SQL查询连接多个表以满足所有条件或不返回任何条件,mysql,sql,Mysql,Sql,我有这个场景和查询结果集。我需要使用特定条件过滤结果集 我有: SELECT ord_no,parent_item,child_item,status FROM **TABLE1** WHERE parent_item IN ('ITEM1') AND ord_no IN ('12345','34567','67854') UNION ALL SELECT ord_no,parent_item,child_item,status FROM **TABLE2** WHERE paren
SELECT
ord_no,parent_item,child_item,status
FROM **TABLE1** WHERE parent_item IN ('ITEM1') AND ord_no IN ('12345','34567','67854')
UNION ALL
SELECT
ord_no,parent_item,child_item,status
FROM **TABLE2** WHERE parent_item IN ('ITEM2') AND ord_no IN ('12345','34567','67854')
UNION ALL
SELECT
ord_no,parent_item,child_item,status
FROM **TABLE3** WHERE parent_item IN ('ITEM3') AND ord_no IN ('12345','34567','67854')
查询返回的结果是这样的,我要寻找的预期结果是只返回所有子项都处于完成状态的特定订单号
查询结果:
ord_no parent_item child_item status
12345 item1 childA complete
12345 item1 childB complete
12345 item2 childC complete
12345 item2 childD incomplete
12345 item3 childE incomplete
12345 item3 childF complete
34567 item1 childA complete
34567 item1 childB complete
34567 item2 childC complete
34567 item2 childD complete
34567 item3 childE complete
34567 item3 childF complete
67854 item1 childA incomplete
67854 item1 childB incomplete
67854 item2 childC complete
67854 item2 childD complete
67854 item3 childE incomplete
67854 item3 childF incomplete
预期结果:
我不知道如何实现这一点。在此方面的任何帮助都将不胜感激
ord_no parent_item child_item status
34567 item1 childA complete
34567 item1 childB complete
34567 item2 childC complete
34567 item2 childD complete
34567 item3 childE complete
34567 item3 childF complete
可以从现有查询中删除,以避免使用长表达式,并将其用于子查询
SELECT *
FROM MyView
WHERE ord_no NOT IN
(SELECT ord_no
FROM MyView
WHERE status <> 'complete');
欢迎来到SO!请提供1实际表模式的相关部分以及示例数据2确切的期望输出3您迄今为止的尝试相信,如果您没有准备好实际表结构,您不能指望我们帮助您进行查询