【问题标题】:Distinct in Join Query在连接查询中区分
【发布时间】:2023-02-08 18:33:42
【问题描述】:

在下面的查询 Benz 表中,car_no 是重复的。当我加入并与其他表 car_no 进行比较时,如何使用 distinct?

表 1:汽车 表二:奔驰

  join Benz bz on bz.car_no = cr.car_no 

上面Benz表中的car_no值是重复的。在 Cars 表中,car_no 值是唯一的。那么如何在查询中加入不同的。

我试过的东西。

  join Benz bz on Distinct(bz.car_no) = cr.car_no 

得到错误。

【问题讨论】:

  • 这没有意义。您不加入DISTINCT值; DISTINCT 是一个进入 SELECT 的运算符,并且只导致清楚的要返回的行,或者可以在某些聚合函数中使用,所以只聚合清楚的值。你到底想在这里实现什么?提供消耗品样本数据和预期结果,以及解释逻辑。
  • @Larnu 感谢您的快速重播。我是数据库查询的新手。在这里,我加入两个表并使用 car_no 检查。根据 car 表中的 car_no 从 Benz 表中获取唯一记录
  • 恐怕这并不能解释任何事情。另外,如果你是新的对于 SQL Server,您真的应该使用受支持的版本; SQL Server 2008 运行完全地早在 2019 年就不再支持了。
  • 每个汽车制造商都有单独的表格吗?取而代之的是一张普通车辆表。

标签: sql sql-server sql-server-2008


【解决方案1】:

请试试这个

SELECT cr.*, bz.*
FROM Cars cr
JOIN (
  SELECT DISTINCT car_no, other_columns
  FROM Benz
) bz
ON bz.car_no = cr.car_no;

在此示例中,子查询“SELECT DISTINCT car_no, other_columns FROM Benz”用于仅从“Benz”表中选择不同的“car_no”值。然后使用“ON”子句将子查询与“Cars”表连接起来。结果查询将仅返回“car_no”值唯一的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-04
    • 2014-03-29
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多