Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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)的错误所在_Mysql_Database - Fatal编程技术网

无法找出双重否定查询(mysql)的错误所在

无法找出双重否定查询(mysql)的错误所在,mysql,database,Mysql,Database,我正在尝试查找至少具有属性id 7所具有的所有仪表类型的属性(PID)。我正在尝试使用双重否定查询,但我一直在出错,我想我很快就能做到这一点(我发现双重否定在概念上很困难)有人能帮我找到我的错误吗 选择DISTINCTpid 从PROPERTYMETERX 不存在的地方 (选择* 从PROPERTYMETERY 其中pid=7) 而且不存在 (选择* 从PROPERTYMETER 其中,pid=X.pid 和metertype=Y.metertype) 我只使用了PROPERTYMETER表,

我正在尝试查找至少具有属性id 7所具有的所有仪表类型的属性(PID)。我正在尝试使用双重否定查询,但我一直在出错,我想我很快就能做到这一点(我发现双重否定在概念上很困难)有人能帮我找到我的错误吗

选择DISTINCT
pid
PROPERTYMETER
X 不存在的地方 (选择* 从
PROPERTYMETER
Y 其中pid=7) 而且不存在 (选择* 从
PROPERTYMETER
其中,pid=X.pid 和metertype
=Y.metertype)

我只使用了PROPERTYMETER表,但是通过连接PROPERTYMETER和METERTYPE,也许有更好的方法来实现这一点


-多亏了一种概念上的方法是将每个
pid
仪表值组内部连接到一个仅包含
pid=7
仪表值的表中。然后按
pid
进行聚合,并断言每个
pid
组的不同仪表类型数与
pid=7
的仪表类型数匹配

SELECT
    p1.pid
FROM PROPERTYMETER p1
INNER JOIN PROPERTYMETER p2
    ON p1.metertype = p2.metertype AND
       p2.pid = 7
GROUP BY
    p1.pid
HAVING
    COUNT(DISTINCT p1.metertype) = (SELECT COUNT(DISTINCT metertype)
                                    FROM PROPERTYMETER WHERE pid = 7)
输出:

仅返回
pid
7和9

此处演示:


请显示样本数据。已编辑@TimBiegeleisen