如何从SQL表中选择特定行并在SQL Server中连接多个表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从SQL表中选择特定行并在SQL Server中连接多个表?相关的知识,希望对你有一定的参考价值。

我正在使用Northwind数据库来学习SQL服务器。我正在尝试运行SQL查询,以便我可以从Employees表中选择特定员工(EmployeeID = 1),以及从Orders表中与员工关联的每个订单,它是如何发货(发货通过),运送它的公司,从订单日期到发货日期的总天数。为此,我有以下查询,我不确定我的查询是否正确。任何人都可以验证吗?

我试过运行以下查询

  SELECT Employees.EmployeeID,
    Orders.OrderID,DATEDIFF(DAY,Orders.OrderDate,Orders.ShippedDate) AS 'Date 
    Diff',
    Orders.ShipVia,Shippers.ShipperID,Shippers.CompanyName FROM  Employees
    LEFT JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
    LEFT JOIN Shippers ON Orders.ShipVia=Shippers.ShipperID
    WHERE Employees.EmployeeID =1
    GROUP BY 

 Orders.ShipVia,Shippers.ShipperID,Shippers.CompanyName,Employees.EmployeeID,Orders.OrderID,Orders.OrderDate,Orders.ShippedDate
答案

以下是使用GROUP BY子句的一些规则 -

1)SELECT语句子句,它将查询结果划分为行组,通常用于在每个组上执行一个或多个聚合。 SELECT语句每组返回一行。

2)指定列上的列或非聚合计算。此列可以属于表,派生表或视图。该列必须出现在SELECT语句的FROM子句中,但不需要出现在SELECT列表中。

3)该列必须出现在SELECT语句的FROM子句中,但不需要出现在SELECT列表中。但是,列表中任何非聚合表达式中的每个表或视图列都必须包含在GROUP BY列表中

这些是与SQL Server相关的文档中的一些重要点

希望这可以解决您的问题或清除您的概念。

更多信息,请访问https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-2017

以上是关于如何从SQL表中选择特定行并在SQL Server中连接多个表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL Server 中的表中获取行的索引?

SQL Server:从一个表中复制新添加的行并自动插入到另一个表中

如何从 SQL Server 中特定数据库的表中获取所有列名?

My SQL with Python:选择具有最高值的行并在那里更改值

如何从 SQL Server 中包含多行数据的 2 个表中选择 4 个不同的值?

如何在 SQL Server 中使用 SQL 实现以下任务