Mysql 从不相关的SQL子查询返回多行

Mysql 从不相关的SQL子查询返回多行,mysql,sql,Mysql,Sql,我正在编写一个SQL脚本来检查MySQL数据库的完整性。这些查询检查不同表的不同方面,因此它们不相关。我不想把它们联系起来。我只想一个接一个地查看不同查询的结果 单个查询工作正常,但我希望同时运行它们,但要将结果分开。它们可以不返回任何内容,也可以返回多行。(理想情况下,我希望标题使结果更清晰。) 错误是 “错误代码:1242。子查询返回多行” 以下是我尝试过的: SELECT (-- Teams not associated with any employees SELECT id FR

我正在编写一个SQL脚本来检查MySQL数据库的完整性。这些查询检查不同表的不同方面,因此它们不相关。我不想把它们联系起来。我只想一个接一个地查看不同查询的结果

单个查询工作正常,但我希望同时运行它们,但要将结果分开。它们可以不返回任何内容,也可以返回多行。(理想情况下,我希望标题使结果更清晰。)

错误是

“错误代码:1242。子查询返回多行”

以下是我尝试过的:

SELECT
(-- Teams not associated with any employees
SELECT id 
  FROM teams
 WHERE NOT EXISTS
          (SELECT id 
             FROM employee_teams
            WHERE employee_teams.teamID IN(teams.id))) AS TeamNoEmployee,

(-- Teams deleted but associated with employees
SELECT teamID 
  FROM employee_teams
 WHERE NOT EXISTS
          (SELECT id 
             FROM teams
            WHERE teams.id IN(employee_teams.teamID))) AS TeamsDeleted
更新:@JohnHC知道了。这是我的新版本。我需要能够为每个查询添加一个标题,以便能够区分它们

-- Teams not associated with any employees
SELECT 'Team No Employee' AS Test, id
  FROM teams
 WHERE NOT EXISTS
          (SELECT id 
             FROM employee_teams
            WHERE employee_teams.teamID IN(teams.id))
UNION
-- Teams deleted but associated with employees
SELECT 'Teams Deleted', teamID 
  FROM employee_teams
 WHERE NOT EXISTS
          (SELECT id 
             FROM teams
            WHERE teams.id IN(employee_teams.teamID))

你并不是真的在一张桌子上讲述这些。换个角度试试,如下所示:

select 'Empty Team' as Scenario, id
from teams t1
left join employee_teams et
  on et.teamID = t1.id
where et.id is null
union 
select 'Deleted Team', teamid
from employee_teams et
left join teams t2
  on t2.id = et.teamID
where t2.id is null

你并不是真的在一张桌子上讲述这些。换个角度试试,如下所示:

select 'Empty Team' as Scenario, id
from teams t1
left join employee_teams et
  on et.teamID = t1.id
where et.id is null
union 
select 'Deleted Team', teamid
from employee_teams et
left join teams t2
  on t2.id = et.teamID
where t2.id is null

使用UNIONALL怎么样?问题是,在每个子查询中可能有不同数量的团队,因此行数不同。SQL不喜欢这样。Thx@RealCheeseLord。如何单独显示每个子查询的结果?使用UNION ALL如何?问题是,每个子查询中可能有不同数量的团队,因此行数不同。SQL不喜欢这样。Thx@RealCheeseLord。如何单独显示每个子查询的结果?请检查第二个查询。OP需要团队ID,我希望类似于
选择不同的团队ID。
@Serg好位置,谢谢。不清楚,我已经转到了
union
而不是
union all
谢谢你的回答。我其实不想把它们联系起来。我只想一个接一个地查看不同查询的结果。@beachCode“我不想把它们联系起来”是什么意思?如果我不清楚,很抱歉。我只是想看看不同查询的结果。在第二个查询中,我不需要将它们组合成一个结果集。OP需要团队ID,我希望类似于
选择不同的团队ID。
@Serg好位置,谢谢。不清楚,我已经转到了
union
而不是
union all
谢谢你的回答。我其实不想把它们联系起来。我只想一个接一个地查看不同查询的结果。@beachCode“我不想把它们联系起来”是什么意思?如果我不清楚,很抱歉。我只是想看看不同查询的结果。我不需要将它们组合成一个结果集