У меня есть этот запрос в Oracle:
SELECT serverHostName,
operatingSystem,
serverClass
FROM Server_Inventory A
WHERE A.serverHostName NOT IN
(SELECT rltd_ServerHostname
FROM App_Server_Relationship)
AND A.serverHostName NOT IN
(SELECT rltd_ServerHostname
FROM DataBase_Server_Relationship)
AND A.operatingSystem NOT IN ('OS1','OS3','OS5')
AND A.serverClass NOT IN ('CLASS_3','CLASS_6');
Я пытаюсь получить список серверов из моей таблицы Server_Inventory, на которых нет приложения и базы данных, связанных или связанных с ним.,Я получаю некоторые результаты, но после некоторой ручной проверки я заметил, что некоторые серверы были исключены, даже если они не подпадают под условия исключения.Например, допустим, у меня есть сервер с именем «Server_24GW1».Если я выполню запрос следующим образом:
SELECT serverHostName,
operatingSystem,
serverClass
FROM Server_Inventory A
WHERE A.serverHostName NOT IN
(SELECT rltd_ServerHostname
FROM App_Server_Relationship)
AND A.serverHostName NOT IN
(SELECT rltd_ServerHostname
FROM DataBase_Server_Relationship)
При поиске сервера Server_24GW1 я получу следующий результат:
serverHostName | operatingSystem | serverClass
----------------------------------------------------
Server_24GW1 | (null) | CLASS_10
Но если я выполню запрос с условиями, то естьэто:
AND A.operatingSystem NOT IN ('OS1','OS3','OS5')
AND A.serverClass NOT IN ('CLASS_3','CLASS_6');
Ничего не получается, когда я пытаюсь найти Server_24GW1, даже если operatingSystem
и serverClass
не попадают под исключающие условия.
Кто-нибудь знает, чтомогу ли я быть не прав?