这可能是由于我的SQL知识有限,但我试图使用如下语句获取数据:
SELECT hostname
FROM mytable
WHERE hostname NOT LIKE '%obl%'
AND group NOT IN ('group1','group2','group3','group4','group5','group6','group7')
AND osname LIKE '%Windows%'
AND hostname NOT LIKE 'nic%'
Run Code Online (Sandbox Code Playgroud)
我意识到这可能是一个非常糟糕的陈述,但到目前为止它已经奏效了.在开始我排除主机名不像"obl"的条目.我有另一个这样的查询:
SELECT hostname
FROM mytable
WHERE hostname LIKE '%obl%'
AND group IN ('group9','group0')
Run Code Online (Sandbox Code Playgroud)
根据我的理解,在这种情况下不会使用连接,因为两个查询都在同一个表上(尽管我对连接的了解非常有限).我通过webservice访问这个数据库,我不确定它是什么类型的数据库.
有没有人对如何在一个查询中从两个查询中获取值有任何想法?
您应该使用UNION语句.
SELECT hostname FROM mytable
WHERE hostname
NOT LIKE '%obl%' AND
group NOT IN ('group1','group2','group3','group4','group5','group6','group7')
AND osname LIKE '%Windows%'
AND hostname not LIKE 'nic%'
UNION
SELECT hostname FROM mytable
WHERE hostname
LIKE '%obl%'
AND group in ('group9','group0')
Run Code Online (Sandbox Code Playgroud)
这样做会,但我认为你可以重新考虑那些有条件的人.如有必要,我会仔细考虑并编辑.
编辑:你可以用一个查询实现你想要的,不需要联合.
SELECT hostname FROM mytable
WHERE (
hostname NOT LIKE '%obl%'
AND group NOT IN ('group1','group2','group3','group4','group5','group6','group7')
AND osname LIKE '%Windows%'
AND hostname NOT LIKE 'nic%'
)
OR (
hostname LIKE '%obl%'
AND group IN ('group9','group0')
)
Run Code Online (Sandbox Code Playgroud)