sql从同一个表中的一组值中选择不同的值

nhaq1z21  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(342)

我的查询结果如下表所示:

value1     name  
------     ------
 abc       JOHN
 def       JOHN
 mno       JOHN
 mno       JOHN
 abc       JAMES
 abc       JAMES
 def       JAMES
 mno       RICK

在上表中,值mno重复两次 JOHN 和价值 `` 重复两次 JAMES .
我使用的查询如下:

SELECT tc.value, tr.name
  FROM table1 tc, table2 tr
 WHERE tc.id = tr.roll
 ORDER BY tr.name;

我希望得到的结果是,必须从每个名称中删除重复的值。结果应该是这样的:

value1   name
------  ------
 abc     JOHN
 def     JOHN
 mno     JOHN
 abc     JAMES
 def     JAMES
 mno     RICK

我只想从每个名称中删除重复的值。我怎样才能做到这一点?

jqjz2hbq

jqjz2hbq1#

尝试使用如下所示的不同连接,也请使用如图所示的标准连接。

SELECT DISTINCT tc.value, tr.name 
FROM table1 tc 
INNER JOIN table2 tr 
ON tc.id = tr.roll 
ORDER BY tr.name;
14ifxucb

14ifxucb2#

你可以用 DISTINCT 已标记的关键字:

SELECT DISTINCT t1.value, t2.name
  FROM table1 t1
  JOIN table2 t2
    ON t1.id = t2.roll
 ORDER BY t2.name;

或者 GROUP BY t1.value, t2.name 条款,或者:

SELECT t1.value, t2.name
  FROM table1 t1
  JOIN table2 t2
    ON t1.id = t2.roll
 GROUP BY t1.value, t2.name   
 ORDER BY t2.name;

相关问题