我的查询结果如下表:
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
我只想从每个名称中删除重复的值。我该如何实现?
尝试以下不同,也请使用如图所示的标准连接。
SELECT DISTINCT tc.value, tr.name
FROM table1 tc
INNER JOIN table2 tr
ON tc.id = tr.roll
ORDER BY tr.name;
您可以使用已经标记过的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;