sql - 在右表的非唯一列上左连接两个表

标签 sql sql-server join left-join sql-query-store

我在 sql server 中有两个表,我想从这些表中选择并加入一些数据。第一个表有一些客户,例如:

---------------
customer   id   
Dave       1    
Tom        2     
---------------

和第二个表 i 购买表,其中包括最后一次购买的 list 和成本以及哪个客户购买了该产品:
------------------
product    date       customer id
PC         1-1-2000   1
phone      2-3-2000   2
laptop     3-1-2000   1
------------------

我想选择最后购买日期的第一张 table (客户信息)!
我尝试过左连接,但这并没有给我最后一次购买,因为客户 ID 在第二个表中不是唯一的!我如何使用 SQL 服务器查询来执行此功能?问候

最佳答案

如果您只想要最大日期,请使用聚合。我会推荐一个 left join对于没有购买过的客户:

select c.customer, c.id, max(p.date)
from customers c left join
     purchases p
     on c.id = p.customer_id
group by c.customer, c.id;

关于sql - 在右表的非唯一列上左连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38415956/

相关文章:

c# - 从数据表中提取两件事的总和

sql - 像 Excel 数据透视表一样在 SQL Server 中创建数据透视查询

sql-server - 您如何将数百个 MS Access 数据库迁移到中央服务?

mysql 连接子查询问题

mysql计数并连接4个表

php - 在 CakePHP 中加入两个过滤器

sql - 将自己的表添加到 CRM 2011 数据库

sql - 检索最佳结果的高效 SQL

mysql - 从具有 3 个联接的 1 个 MySQL 表获取结果并添加新行

sql - 选择连续的数据对