SQL在连接表上的值不同

时间:2012-02-24 04:11:27

标签: sql join

我正在尝试获取表中一列的DISTINCT值。但是,此列通过id从另一个表进入INNER JOINED。

当我尝试在列上使用DISTINCT时,它会产生相同的结果,因为DISTINCT还会考虑唯一标识符ID。是否有任何解决方法只是从连接表???

获取列的DISTINCT

EG。

SELECT val1, b.val2, val3
  FROM TABLE 1 
  JOIN (SELECT DISTINCT val2 
          FROM TABLE 2) AS b ON val1 = b.val2

2 个答案:

答案 0 :(得分:6)

尝试使用GROUP BY而不是DISTINCT:

SELECT val1
     , b.val2
     , val3
  FROM TABLE 1 
  JOIN (SELECT val2 
          FROM TABLE 2 GROUP BY val2) AS b ON val1 = b.val2

答案 1 :(得分:0)

提供我的解决方案: 我最终通过连接使用嵌套的distinct,并且所有未连接的值(所有20+)必须被包裹在MIN(x)周围,因为这些值并不重要,只要只有一个不同的值是返回。