是否可以在一个查询中执行多个SQL select语句?两个select语句都在同一个表中

EGr*_*EGr 5 sql join

这可能是由于我的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访问这个数据库,我不确定它是什么类型的数据库.

有没有人对如何在一个查询中从两个查询中获取值有任何想法?

Héc*_*ovo 8

您应该使用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)