我的查询需要稍微具体一点

时间:2017-10-13 00:18:10

标签: mysql phpmyadmin

问题是'列出所有没有metertype“高级”属性的pids 安装。在答案中使用子查询。

METERTYPE PROPERTYMETER

这是我提出的查询

SELECT PROPERTYMETER.pid, METERTYPE.description
 FROM PROPERTYMETER , METERTYPE
 WHERE PROPERTYMETER.metertype = METERTYPE.metertype
  AND description IN (SELECT description FROM METERTYPE WHERE description = 'conventional') 

这是我得到的结果

enter image description here

除了pid 9具有传统和高级metertype之外,结果一切都很好,所以我并没有真正回答这个问题。我可以对我的查询做些什么来确保仅返回的pid具有传统的metertype?

1 个答案:

答案 0 :(得分:0)

使用子查询获取具有pid的所有属性的metertype = 'advanced'。然后使用NOT IN将其排除在最终结果之外。

SELECT DISTINCT pid
FROM propertymeter
WHERE pid NOT IN (
    SELECT pid
    FROM propertymeter AS p
    JOIN metertype AS m ON p.metertype = m.metertype
    WHERE m.description = 'advanced')