Sql 选择中的左联接子查询
我在中练习SQL,下面的代码是 错误的结果,因为我要从Customers表中加入的customer name 即使customerid不同,也要生成重复名称Sql 选择中的左联接子查询,sql,sql-server,left-join,Sql,Sql Server,Left Join,我在中练习SQL,下面的代码是 错误的结果,因为我要从Customers表中加入的customer name 即使customerid不同,也要生成重复名称 SELECT orders.OrderDate ,orders.OrderID ,orders.CustomerID , (select customers.CustomerName from Orders Left join Customers on Orders.CustomerID = Custome
SELECT orders.OrderDate
,orders.OrderID ,orders.CustomerID
, (select customers.CustomerName
from Orders
Left join Customers
on Orders.CustomerID = Customers.CustomerID) as customername
FROM Orders
先谢谢你
我认为你根本不需要左撇子加入。订单是否存在而没有客户?如果是,您需要左键连接。如果否,则需要内部联接,如下所示:
SELECT orders.OrderDate
,orders.OrderID
,orders.CustomerID
,customers.CustomerName
FROM Orders
Left join Customers on Orders.CustomerID = Customers.CustomerID
我认为你根本不需要左撇子加入。订单是否存在而没有客户?如果是,您需要左键连接。如果否,则需要内部联接,如下所示:
SELECT orders.OrderDate
,orders.OrderID
,orders.CustomerID
,customers.CustomerName
FROM Orders
Left join Customers on Orders.CustomerID = Customers.CustomerID
你在两个地方下订单。这是不必要的。简单的左外联接或简单的子查询就可以了 选择orders.OrderDate ,orders.OrderID,orders.CustomerID ,选择customers.CustomerName 来自客户 其中Customers.CustomerID=Orders.CustomerID作为customername 从命令 或 选择orders.OrderDate ,orders.OrderID ,orders.CustomerID ,customers.CustomerName 从命令 左外接客户 ON Customers.CustomerID=Orders.CustomerID
你在两个地方下订单。这是不必要的。简单的左外联接或简单的子查询就可以了 选择orders.OrderDate ,orders.OrderID,orders.CustomerID ,选择customers.CustomerName 来自客户 其中Customers.CustomerID=Orders.CustomerID作为customername 从命令 或 选择orders.OrderDate ,orders.OrderID ,orders.CustomerID ,customers.CustomerName 从命令 左外接客户 ON Customers.CustomerID=Orders.CustomerID
您需要使用子查询的任何特定原因?您只需执行Orders内部联接Customers即可从子查询中删除Orders表。您不需要将子查询与外部查询关联起来。而且你的帖子是可疑的,因为你的子查询应该产生多行,这会产生一个错误。您确定这是生成所显示结果的实际查询吗?您需要使用子查询的具体原因是什么?您只需执行Orders内部联接Customers即可从子查询中删除Orders表。您不需要将子查询与外部查询关联起来。而且你的帖子是可疑的,因为你的子查询应该产生多行,这会产生一个错误。您确定这是生成所显示结果的实际查询吗?