小编典典

如何在不使用group by语句的情况下选择不同的行

sql

A B C
1 1 1 
1 1 1 
2 2 2 
2 2 2 
3 3 3 
3 3 3 
4 4 4 
4 4 4 
5 5 5 
5 5 5 
5 5 5 
6 6 6
6 6 6

我只输出不重复的行,而不使用group by语句。我不能使用group by,因为它会使mysql挂起。所以它应该返回

1 1 1
2 2 2 
3 3 3 
4 4 4 
5 5 5 
6 6 6

我正在使用DISTINCT进行内部联接。这也不起作用:

SELECT DISTINCT * FROM TABLEA inner join TABLEB on TABLEA.A = TABLEB.A

阅读 241

收藏
2021-03-17

共1个答案

小编典典

SELECT DISTINCT A,B,C FROM TABLE;

根据mysql文档,DISTINCT指定从结果集中删除重复的行(http://dev.mysql.com/doc/refman/5.0/en/select.html

我在jsfiddle上创建了一个示例,它可以恕我直言

create table tablea (A int,B int,C int);
create table tableb (A int);

INSERT INTO tablea VALUES (1,1,1),(1,1,1),(2,2,2),(2,2,2),(3,3,3),(3,3,3),(4,4,4),(4,4,4),(5,5,5),(5,5,5),(5,5,5),(6,6,6),(6,6,6);
INSERT INTO tableb VALUES (1),(1),(1),(1),(1);

SELECT DISTINCT tablea.A,tablea.B,tablea.C FROM tablea INNER JOIN tableb ON tablea.A=tableb.A;

随时尝试使用此SQLFiddle

2021-03-17