使用EXISTS引入子查询

用户名

我有一个长查询,执行时会引发异常。查询:

SELECT HostID,HostName,RackID,HostTypeID,DomainName,RackNumberOfHeightUnits,RackStartHeightUnits 
FROM tHosts, tDomains   
WHERE tHosts.DomainID=tDomains.DomainID AND (RackID IN ( SELECT tRacks.Name,tRacks.RackID,tRacks.SiteID,tRacks.Description,NumberOfHeightUnits   
                                                         FROM tDomains, tSites, tRacks   
                                                         WHERE   tDomains.AccountID= tSites.AccountID    
                                                         AND tSites.SiteID = tRacks.SiteID    
                                                         AND tSites.SiteID = 2  
                                                         AND tDomains.AccountID=1 ) 
AND  SiteID IN (SELECT SiteID FROM tSites WHERE SiteID IN (SELECT SiteID FROM tSites WHERE AccountID=1)))AND AccountID=1

在这里完成查询:

SELECT tRacks.Name,tRacks.RackID,tRacks.SiteID,tRacks.Description,NumberOfHeightUnits 
                                                         FROM tDomains, tSites, tRacks  
                                                         WHERE tDomains.AccountID= tSites.AccountID  
                                                         AND tSites.SiteID = tRacks.SiteID  
                                                         AND tSites.SiteID = 2  
                                                         AND tDomains.AccountID=1 

**错误:**如果EXISTS未引入子查询,则只能在选择列表中指定一个表达式。
提前感谢。

Shnugo

使用“IN您必须返回一列”,即要与之比较的列:

改变这个

 ...AND (RackID IN ( SELECT tRacks.Name,tRacks.RackID,tRacks.SiteID,tRacks.Description,NumberOfHeightUnits   
                     FROM tDomains, tSites, tRacks ...

对此:

... AND (RackID IN ( SELECT tRacks.RackID FROM tDomains, tSites, tRacks ...

在这个地方,“外部”将不使用其他任何列

但是-老实说-整个查询看起来像-嗯-可改进的...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”错误

未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式

查询错误:如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式

SQL-如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式

我收到此错误:如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式

如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式。我的sql server存储过程

一行中的多个插入会产生错误“当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”

未因EXISTS错误引入子查询时,只能在选择列表中指定一个表达式

当子查询未通过 EXISTS 引入时,选择列表中只能指定一个表达式。SQL

当子查询未通过 EXISTS 引入时,选择列表中只能指定一个表达式。在子查询 sqlserver 中

如果未通过EXISTS引入子查询,则只能在选择列表中指定一个表达式。(子查询)重复

SQL 查询错误:“当子查询未通过 EXISTS 引入时,选择列表中只能指定一个表达式。” 输出参数

EXISTS无法在WITH子句中使用子查询

如何在SQL子查询中使用WHERE EXISTS?

如何使用jOOQ创建SELECT EXISTS(子查询)?

当子查询没有用EXISTS引入时,select列表中只能指定一个表达式

当我尝试获得制造零件的MIN值时,我得到(只有一个表达式...当EXISTS不引入子查询时)

当子查询未通过 EXISTS 引入时,选择列表中只能指定一个表达式。- SQL 服务器

用等效的EXISTS()查询替换IN()子查询

对子查询使用NOT EXISTS

SQL NOT EXISTS 子查询未按预期运行

EXISTS子查询Oracle 11.2与Oracle 12.1

使用 where not exists 并选择不同的子查询时,不会从表中删除 SQL 行

使用子查询过滤查询

在查询中使用子查询

使用 NOT EXISTS 重写查询的指南

Mysql Exists vs IN-相关子查询还是子查询?

子查询的使用

PostgreSQL子查询使用