我需要查找表中不包含特定值的每个条目。我正在撰写一份报告,该报告将提取未安装特定软件ID的每个不同工作站名称。我正在拉出的表中有每个机器上安装的每个软件的条目。
SELECT DISTINCT ws_name
FROM table
WHERE software_id 123 does not exist
我不知道用什么代码替换上面代码的“不存在”部分。
答案 0 :(得分:0)
更多地了解表模式(以及您使用的DBMS)可能有助于提供更好的答案。仍然有你所拥有的我认为你可以使用这样的东西:
SELECT DISTINCT ws_name
FROM table
WHERE ws_name NOT IN (SELECT DISTINCT ws_name
FROM table
WHERE software_id = 123)
答案 1 :(得分:0)
如果我正确理解了该问题,您希望排除在任何行中ws_name
software_id = 123
的{{1}}。如果这是正确的,您需要一个子查询:
SELECT DISTINCT ws_name
FROM mytable a
WHERE NOT EXISTS (SELECT *
FROM mytable b
WHERE a.ws_name = b.ws_name AND b.software_id = 123)
或者使用带有子查询的in
运算符:
SELECT DISTINCT ws_name
FROM mytable
WHERE ws_name NOT IN (SELECT ws_name
FROM mytable
WHERE software_id = 123)