Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:当且仅当子项具有特定属性时获取父项_Mysql_Sql_Sql Server_Oracle - Fatal编程技术网

Mysql SQL:当且仅当子项具有特定属性时获取父项

Mysql SQL:当且仅当子项具有特定属性时获取父项,mysql,sql,sql-server,oracle,Mysql,Sql,Sql Server,Oracle,我有一个资产表,其中可以包含资源表中的一个或多个资源 我想返回一个资产,该资产的所有资源状态为'1',或者根本没有 到目前为止,我有: SELECT id FROM asset A JOIN resource R ON A.id = R.asset_id WHERE R.status = '1'. 如果我得到一个记录,我如何知道这是该资产拥有的所有资源,即它不是一个子集 这些数据是捏造的,而我真正的查询有点复杂 我知道这是一个连接查询,但不知道如何进行 谢谢你的帮助 编辑:标题有点误导。我的

我有一个资产表,其中可以包含资源表中的一个或多个资源

我想返回一个资产,该资产的所有资源状态为'1',或者根本没有

到目前为止,我有:

SELECT id FROM asset A JOIN resource R ON A.id = R.asset_id WHERE R.status = '1'. 
如果我得到一个记录,我如何知道这是该资产拥有的所有资源,即它不是一个子集

这些数据是捏造的,而我真正的查询有点复杂

我知道这是一个连接查询,但不知道如何进行

谢谢你的帮助


编辑:标题有点误导。我的意思是说所有的孩子都有一定的财产

使用NOT EXISTS子句,如下所示:

SELECT id 
FROM asset A 
INNER JOIN resource R ON A.id = R.asset_id 
WHERE NOT EXISTS (
     /* Only return results if the asset has resources of all status = '1'  */
     SELECT 1 
     FROM Resources R2
     WHERE A.asset_id = R2.asset_id
     AND R2.status <> '1'
)

使用NOT EXISTS子句,如下所示:

SELECT id 
FROM asset A 
INNER JOIN resource R ON A.id = R.asset_id 
WHERE NOT EXISTS (
     /* Only return results if the asset has resources of all status = '1'  */
     SELECT 1 
     FROM Resources R2
     WHERE A.asset_id = R2.asset_id
     AND R2.status <> '1'
)

+1因为“不存在”而不是“不存在”,在这种情况下,它不太可能影响你。现在我看起来很容易。哈哈+1因为“不存在”而不是“不存在”,在这种情况下,它不太可能影响你。现在我看起来很容易。英雄联盟