SQL Server子查询

SQL Server子查询,sql,sql-server,subquery,Sql,Sql Server,Subquery,我可以在另一个子查询中写入子查询吗 下面是我为connect三个表(DBO.salesson,DBO.Orders,DBO.Customer)编写的内容,但它在SQL Server中不起作用 质疑 是否有执行此任务的方法???或者您可以编写SQL查询而无需子查询 SELECT DBO.SalesPerson.name FROM DBO.SalesPerson,DBO.Orders,DBO.Customer WHERE DBO.SalesPerson.id=DBO.Orders.SalesP

我可以在另一个子查询中写入子查询吗

下面是我为connect三个表(
DBO.salesson
DBO.Orders
DBO.Customer
)编写的内容,但它在SQL Server中不起作用

质疑


是否有执行此任务的方法???

或者您可以编写SQL查询而无需子查询

SELECT DBO.SalesPerson.name

FROM DBO.SalesPerson,DBO.Orders,DBO.Customer 
WHERE 
DBO.SalesPerson.id=DBO.Orders.SalesPersonId
and DBO.Orders.customerId=DBO.Customer.id
and DBO.Customer.name='Samsonic'
您可以使用嵌套子查询,但对于类似的情况,您应该只连接表:

select
  p.name
from
  DBO.SalesPerson p
  inner join DBO.Orders o on o.salesPersonId = p.id
  inner join DBO.Customer c on c.id = o.customerId
where
  c.name='Samsonic'
使用in而不是“=”。首先,您应该查找“连接”-什么不起作用-是否出现错误?如果是这样,请发布您收到的完整准确的错误消息。还有:你到底为什么要这样做?只需使用两个简单的
JOIN
s,您就完成了。。。。更简单,也可能更快在ANSI-92 SQL标准(20多年前)中,旧样式的逗号分隔表列表样式被正确的ANSI
JOIN
语法所取代,不鼓励使用它。请停止那些已经退休20多年的建议!请改用正确的ANSI连接。。。。
select
  p.name
from
  DBO.SalesPerson p
  inner join DBO.Orders o on o.salesPersonId = p.id
  inner join DBO.Customer c on c.id = o.customerId
where
  c.name='Samsonic'