SQL从同一表的值集中选择不同的值

问题描述 投票:0回答:2

我的查询结果如下表:

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

在上表中,值mno对于JOHN重复两次,值abc对于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

我只想从每个名称中删除重复的值。我该如何实现?

mysql sql group-by distinct
2个回答
1
投票

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

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

0
投票

您可以使用已经标记过的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; 
© www.soinside.com 2019 - 2024. All rights reserved.